+ -
当前位置:首页 → 问答吧 → 如何用函数判断某个守护进程处入运行中

如何用函数判断某个守护进程处入运行中

时间:2011-09-19

来源:互联网

如题, 用什么函数可以判断stunnel这个守护进程当前处入运行状态啊? 用ps -ef|grep stunnel当然是可以的, 但是这样需要启动子进程,非常影响程序的运行效率,而且还需要处理返回结果,比较麻烦。 请问有没有API函数可以实现这个功能啊?

作者: linux_6   发布时间: 2011-09-19

获取守护进程的PID之后,可以用kill(pid, 0)来检测

作者: justkk   发布时间: 2011-09-19

引用 1 楼 justkk 的回复:

获取守护进程的PID之后,可以用kill(pid, 0)来检测

汗,既然可以获取进程的PID, 那说明进程当前肯定处于运行状态了,根本就不用判断了。

作者: linux_6   发布时间: 2011-09-19

作者: linux_6   发布时间: 2011-09-19

貌似没有好办法,很多守护进程都是在/var/run目录下放一个标记文件来标识自己是否运行(文件的内容一般是守护进程的PID号),比如/var/run/syslogd.pid之类。如果希望从其它进程检测守护进程运行状态的话,不仿考虑一下这个做法。

但是这个做法并不完美,比如,kill -9,它不但会留下垃圾,处理不当的话还可能使守护进程无法启动。

作者: armed   发布时间: 2011-09-19

引用 4 楼 armed 的回复:

貌似没有好办法,很多守护进程都是在/var/run目录下放一个标记文件来标识自己是否运行(文件的内容一般是守护进程的PID号),比如/var/run/syslogd.pid之类。如果希望从其它进程检测守护进程运行状态的话,不仿考虑一下这个做法。

但是这个做法并不完美,比如,kill -9,它不但会留下垃圾,处理不当的话还可能使守护进程无法启动。


有没有一些库函数可以检测的啊?

作者: linux_6   发布时间: 2011-09-19