我有一个使用Python编写的守护进程.当它运行时,它有一个位于/tmp/filename.pid的PID文件.如果守护程序未运行,则PID文件不存在.
在Linux上,如何检查以确保PID文件存在,如果不存在,请执行命令重新启动它?
命令是
python daemon.py restart
必须从特定目录执行.
[ -f /tmp/filename.pid ] || python daemon.py restart
-f
检查给定路径是否存在并且是否是常规文件(只-e
检查路径是否存在)
在[]
执行测试并返回0
成功,1
否则
它||
是类似C的or
,所以如果左边的命令失败,请执行右边的命令.
所以最后的声明说,如果/tmp/filename.pid
不存在则启动守护进程.
如果它是你想知道的bash脚本,这样的东西会起作用:
if [ ! -f "$FILENAME" ]; then python daemon.py restart fi
更好的选择可能是查看lockfile
其他答案适用于检测文件的存在.但是,对于完整的解决方案,您可能应该检查pidfile中的PID是否仍在运行,并且它是您的程序.
test -f filename && daemon.py restart || echo "File doesn't exists"