在我的警报.py在from daemon import Daemon
import os, time, sys
class alertDaemon(Daemon):
def run(self):
while True:
time.sleep(1)
if __name__ == "__main__":
alert_pid = '/tmp/ex.pid'
# if pid doesnt exists run
if os.path.isfile(alert_pid): # is this check enough?
sys.exit(0)
daemon = alertDaemon(alert_pid)
daemon.start()
假设没有其他程序或用户会创建pid文件:
1)是否存在pid不存在后台进程仍在运行的情况?
2) 是否存在pid存在但守护进程不运行的情况?在
因为如果上面至少有一个问题的答案是肯定的,那么如果我的目标是始终运行一个守护进程,那么仅仅检查pid文件的存在是不够的。在
问:如果我必须检查进程,我希望避免像系统调用ps-ef和grep这样的脚本名称。有标准的方法吗?在
注:剧本,我的警报.py,将是一个密友