日期:2014-05-16  浏览次数:20691 次

unix下 用程序检查某一进程是否存在,若不存在则启动该进程,若存在则不处理
如题,unix下,在程序中检查某一进程是否存在,若不存在则启动该进程,若存在则不处理,求教各位高手,如何做

不是用 ps -e|grep   ;而是同unix下的系统函数实现
------解决方案--------------------
用 kill 函数实现
kill(pid, 0)
当然你要知道他的pid
一般是一个监控程序
负责启动(记录pid),监控,重启,关闭 或者特定的事。。。
------解决方案--------------------
遍历/proc下的以pid号的目录中的cmdline,判断是否是你要监视的进程,如果找到,则该目录名就是进程的pid,可以做你想做的重启、关闭等操作;如果遍历完之后没有找到该进程,则说明进程已经死亡。
------解决方案--------------------
如果是这样的话可以用7楼的方法,扫描/proc下的cmdline,或者外调shell脚本。
------解决方案--------------------
pidname=${ps aux
------解决方案--------------------
grep "进程名"
------解决方案--------------------
grep -v "grep"}
if[ $pidname != ""];then
  service 服务名 restart
else
   echo "进程已启动"
fi