|
|
1
164
它是原子性的,避免了当你的进程收到SIGKILL时,锁文件到处乱放的问题
你可以
read in the documentation for
|
|
|
2
106
将pid文件放到某个地方(例如/tmp)。然后,您可以通过检查文件中的PID是否存在来检查进程是否正在运行。当您干净地关闭时,不要忘记删除该文件,并在启动时检查它。
然后,您可以通过检查/tmp/mydaemon.pid的内容是否是现有进程来检查进程是否正在运行。Monit(如上所述)可以为您完成此操作,或者您可以编写一个简单的shell脚本,使用ps的返回代码为您检查它。
为了获得额外的学分,您可以使用atexit模块来确保您的程序在任何情况下(当被杀死、引发异常等时)都能清理其pidfile。 |
|
|
3
26
|
|
|
4
11
我的解决方案是检查进程和命令行参数 在windows和ubuntu linux上测试
|
|
|
5
10
当然,丹的例子不会像它应该的那样起作用。
我建议以下内容来自另一个网站: 这是为了检查是否已经存在锁文件
此代码将检查与现有运行进程相比的pid值。避免双重执行。 我希望这会有所帮助。 |
|
|
7
6
我自己也遇到了这个老问题,正在寻找解决方案。 使用 psutil :
|
|
|
8
6
并解析输出。许多人选择这种方法,在我看来,这不一定是一种糟糕的方法。 |
|
|
9
2
|
|
|
10
2
尝试其他版本
|
|
|
11
1
一种便携式解决方案,依赖于
通常你不必使用
|
|
|
12
0
与其开发自己的PID文件解决方案(它比你想象的有更多的微妙之处和极端情况),不如看看 supervisord --这是一个过程控制系统,可以很容易地将作业控制和守护进程行为包裹在现有的Python脚本周围。 |
|
|
13
0
其他答案对于像cron作业这样的事情来说很好,但如果你正在运行一个守护进程,你应该用类似的东西来监视它 daemontools . |
|
|
14
0
|
|
|
15
0
|
|
|
16
0
以下是更有用的代码(检查python是否确实执行了脚本):
这是字符串:
如果“grep”成功,并且进程“python”当前正在以脚本名称作为参数运行,则返回0。 |
|
|
17
0
一个简单的例子,如果你只是在寻找一个进程名称是否存在:
|
|
|
18
-1
我一直在寻找这个问题的答案,在我看来,我想到了一个非常简单和很好的解决方案(因为在这个问题上不可能存在误报,我想——如果程序不这样做,TXT上的时间戳怎么能更新呢): -->根据您的需要,在TXT上继续写下某个时间间隔内的当前时间戳(这里每半小时一次是完美的)。 如果检查时TXT上的时间戳相对于当前时间戳已经过时,则程序存在问题,应该重新启动或执行您喜欢的操作。 |
|
|
19
-1
我建议使用这个脚本,因为它只能执行一次。 |
|
|
20
-1
使用bash查找具有当前脚本名称的进程。没有额外的文件。
要测试,请添加
|