我一直在尝试各种在 bash 中执行此操作的方法,我发现pgrep program > /dev/null || program
这是最短/最优雅的方法。有没有比这更好的方法?
答案1
使用pgrep
,您可能会匹配除您自己的程序之外的其他程序。如果您想确保匹配正确的程序,请使用pidof
。
您还可以使用start-stop-daemon
PID 文件。start-stop-daemon
将检查程序是否正在运行,并在需要时启动它。这是大多数 init 脚本中使用的。
答案2
[ -z `pidof program` ] || echo "program runing"
# or
[ -z `pidof program` ] && OtherProgram