kill -0 PidNum
参数是0,不会发送任何的信号,不会关闭程序,但会执行错误检查,对程序运行状态进行监控。可以用他来检测某个进程ID或进程组ID是否存在。从理解上看,作用相当于ps -p 。
进程已停止、不存在或其他异常,返回状态码1,
进程正常运行,返回状态码0。
man 中解释如下:
If sig is 0, then no signal is sent, but error checking is still performed; this can be used to check for the existence of a process ID or process group ID.
例如如下指令,可以判断23636的进程是否存在,如果存在,$?返回0,
[oracle@bisal ~]$ kill -0 23636 &>/dev/null; echo "Process Status: $?"
Process Status: 0
如果不存在或者存在异常,$?返回1,
[oracle@bisal ~]$ kill -0 23636 &>/dev/null; echo "Process Status: $?"
Process Status: 1
在一些服务脚本中见过,如下mysqld.server 的stop中