当前位置: 技术问答>linux和unix
liunx中如何用C实现检测某个进程时候存在,如不存在,启动该进程。。。。。。。。
来源: 互联网 发布时间:2015-11-23
本文导语: liunx中如何用C实现检测某个进程时候存在,如不存在,启动该进程。。。。。。。。 在线等待.... | 查看/proc文件。 写个程序读/proc文件查看给进程是否存在。/proc/PID/exe 对应的就是程序名 ...
liunx中如何用C实现检测某个进程时候存在,如不存在,启动该进程。。。。。。。。
在线等待....
在线等待....
|
查看/proc文件。
写个程序读/proc文件查看给进程是否存在。/proc/PID/exe 对应的就是程序名 可以用
readlink读。
例如:
[root@lemon]# ls -l /proc/466/exe
lrwxrwxrwx 1 root root 0 Jul 2 23:32 /proc/466/exe -> /var/test/apache/bin/httpd
写个程序读/proc文件查看给进程是否存在。/proc/PID/exe 对应的就是程序名 可以用
readlink读。
例如:
[root@lemon]# ls -l /proc/466/exe
lrwxrwxrwx 1 root root 0 Jul 2 23:32 /proc/466/exe -> /var/test/apache/bin/httpd
|
用ps重定向到文件中去分析
|
直接脚本实现更简单,定时检测,要不然可以在那个程序外面再加一个外壳,做为你程序的父进程,采用父进程监听子进程退出信号的办法能做到:只要子进程退出,父进程立即就能响应。
|
涉及公司的产权,我不能直接给你代码,真是抱歉,其实实现很简单,在你的监测父进程上注册监听子进程退出的信号函数,然后fork一个子进程,子进程执行你的程序代码(你的程序不要退出),然后父进程进入一个空循环,比如每休眠几秒钟醒一次。
|
用sh -x执行一下。
|
写成这样试一试:
./media
或者写media的全路径试一试。
./media
或者写media的全路径试一试。
|
写pid文件,定期去察看文件生成时间,超时就启动
|
读文件的办法确实不错