aperson Asked: 2010-08-26 23:06:53 +0800 CST2010-08-26 23:06:53 +0800 CST 2010-08-26 23:06:53 +0800 CST 检查进程是否正在运行的最优雅方法,如果没有则启动? 772 我一直在用各种方法在 bash 中做这件事,我发现pgrep program > /dev/null || program这是做这件事的最短/最优雅的方法。还有比这更好的方法吗? bash 2 个回答 Voted Best Answer raphink 2010-08-27T00:09:49+08:002010-08-27T00:09:49+08:00 使用pgrep,您可能会匹配其他程序,而不仅仅是您的程序。如果您想确保匹配正确的程序,请pidof改用。 您也可以使用start-stop-daemonPID 文件。start-stop-daemon将检查程序是否正在运行并在需要时启动它。这是大多数初始化脚本中使用的内容。 SergioAraujo 2010-10-14T09:32:22+08:002010-10-14T09:32:22+08:00 [ -z `pidof program` ] || echo "program runing" # or [ -z `pidof program` ] && OtherProgram
使用
pgrep
,您可能会匹配其他程序,而不仅仅是您的程序。如果您想确保匹配正确的程序,请pidof
改用。您也可以使用
start-stop-daemon
PID 文件。start-stop-daemon
将检查程序是否正在运行并在需要时启动它。这是大多数初始化脚本中使用的内容。