使用 Kill 命令监控进程
发布于 2008年9月23日
如果您有一个进程 ID,但不确定它是否有效,您可以使用最不可能的候选者
来测试它:kill 命令。如果您在 kill(1) 手册页上看不到任何相关信息,请检查 info
页面。man/info 页面指出信号 0 是特殊的,并且来自 kill 的退出代码可以判断是否
可以将信号发送到指定的进程(或多个进程)。
因此kill -0不会终止进程,并且可以使用返回状态来确定
进程是否正在运行。 例如
$ echo $$ # show our process id 12833 $ /bin/bash # create new process $ echo $$ # show new process id 12902 $ kill -0 12902 $ echo $? # exists, exit code is 0 0 $ exit # return to previous shell $ kill -0 12902 bash: kill: (12902) - No such process $ echo $? # doesn't exist, exit code is 1 1
许多 UNIX 守护进程在启动时将其进程 ID 存储在 /var/run 的文件中。使用kill
-0来测试 pid 比解析ps输出容易得多。 例如,要测试 cron 是否
正在运行,请执行以下操作
# kill -0 $(cat /var/run/cron.pid) # echo $? 0