如何检查存在的文件并执行命令?

我有一个使用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


其他答案很适合检测文件的存在。 然而,对于一个完整的解决方案,您可能应该检查PID文件中的PID是否仍在运行,并且它是您的程序。

链接地址: http://www.djcxy.com/p/24135.html

上一篇: How can I check a file exists and execute a command if not?

下一篇: bash if