![]() | 1 youngzy 2021-06-11 20:28:19 +08:00 via Android 如果自用的话可以考虑占用一个高位端口 |
![]() | 2 NoahNye 2021-06-11 20:33:22 +08:00 via iPhone 直接注册成服务运行 |
3 hs0000t 2021-06-11 20:34:13 +08:00 via Android 占端口+1 |
![]() | 4 18870715400 OP @hs0000t 谢谢, 这个方法可行 |
![]() | 5 18870715400 OP @youngzy 但是如果需要保证 100% 准确的话, 端口一开始还有可能被其它程序占用, 那么还有其它什么方法么 |
![]() | 6 abersheeran 2021-06-11 20:56:39 +08:00 via Android @18870715400 利用 Windows 的文件特性。只要有一个进程拿到了一个文件的写入权限,其他进程想以写入模式打开这个文件就会报错。 |
![]() | 7 xupefei 2021-06-11 20:59:09 +08:00 via iPhone mutex pid |
8 Jirajine 2021-06-11 21:10:05 +08:00 via Android ![]() 常用的办法是通过文件来模拟 lock,很多很多程序都这么干。像 cargo/pacman/borg 等等。 |
![]() | 9 18870715400 OP @Jirajine 好的, 谢谢. |
![]() | 10 ClericPy 2021-06-11 21:49:13 +08:00 很多软件确实留一个 pid lock 在目录下面, 每次读取这个目录下面的 pid 看看是否存活 印象中 gunicorn 就有一个类似的 |
![]() | 11 typetraits 2021-06-11 22:26:15 +08:00 Windows 下推荐使用 Named Mutex https://docs.microsoft.com/en-us/windows/win32/sync/using-named-objects |
12 Rhilip 2021-06-12 17:05:10 +08:00 ![]() 我赞同 L8 的观点,用 FileLock https://pypi.org/project/filelock/ |
13 ho121 2021-06-12 20:50:16 +08:00 via Android |
![]() | 14 Akiya 2021-06-13 00:13:36 +08:00 via iPad 通常做法是文件锁 |
![]() | 15 402124773 2021-06-13 10:03:13 +08:00 之前做了个小工具,要检测某个 python 的进程是否一直在运行,用 cmd 脚本,tasklist 命令去循环 |
16 qile1 2021-06-20 21:18:35 +08:00 via Android 使用文件锁可以实现 |