unix下 用程序检查某一进程是否存在,若不存在则启动该进程,若存在则不处理

unix_zhangbo 2014-01-12 08:37:41
如题,unix下,在程序中检查某一进程是否存在,若不存在则启动该进程,若存在则不处理,求教各位高手,如何做

不是用 ps -e|grep ;而是同unix下的系统函数实现
...全文
286 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
c_sdn_shang_bu_qi 2014-01-16
  • 打赏
  • 举报
回复
pidname=${ps aux|grep "进程名"|grep -v "grep"} if[ $pidname != ""];then service 服务名 restart else echo "进程已启动" fi
Carl_CCC 2014-01-14
  • 打赏
  • 举报
回复
如果是这样的话可以用7楼的方法,扫描/proc下的cmdline,或者外调shell脚本。
非凡glj 2014-01-13
  • 打赏
  • 举报
回复
遍历/proc下的以pid号的目录中的cmdline,判断是否是你要监视的进程,如果找到,则该目录名就是进程的pid,可以做你想做的重启、关闭等操作;如果遍历完之后没有找到该进程,则说明进程已经死亡。
unix_zhangbo 2014-01-13
  • 打赏
  • 举报
回复
引用 2 楼 erhou134 的回复:
用 kill 函数实现 kill(pid, 0) 当然你要知道他的pid 一般是一个监控程序 负责启动(记录pid),监控,重启,关闭 或者特定的事。。。
能否像ps -e|grep 程序名那样;现在已有程序名,能否用相应的函数查看程序启动了那些进程
unix_zhangbo 2014-01-13
  • 打赏
  • 举报
回复
引用 1 楼 Idle_Cloud 的回复:
最好的办法是,让程序自己去处理,程序起来后会去锁定一个叫.pid的文件,然后在启动它的时候发现这个文件被锁定了,就会自己退出。http://blog.csdn.net/changli_90/article/details/8911191 看这个blog,扫盲下。
我是想在监控程序中检查主程序是否已经启动,主程序本身允许启动多次。 监控程序实时接收客户端请求,当发现启动主程序请求时,先检查主程序是否存在,若存在,先kill掉主程序,再重新启动,若不存在,直接启动主程序
unix_zhangbo 2014-01-13
  • 打赏
  • 举报
回复
引用 楼主 unix_zhangbo 的回复:
如题,unix下,在程序中检查某一进程是否存在,若不存在则启动该进程,若存在则不处理,求教各位高手,如何做 不是用 ps -e|grep ;而是同unix下的系统函数实现
我是想在监控程序中检查主程序是否已经启动,主程序本身允许启动多次。 监控程序实时接收客户端请求,当发现启动主程序请求时,先检查主程序是否存在,若存在,先kill掉主程序,再重新启动,若不存在,直接启动主程序
rethyx 2014-01-13
  • 打赏
  • 举报
回复
想法和楼上一致
空的 2014-01-13
  • 打赏
  • 举报
回复
用 kill 函数实现 kill(pid, 0) 当然你要知道他的pid 一般是一个监控程序 负责启动(记录pid),监控,重启,关闭 或者特定的事。。。
Carl_CCC 2014-01-12
  • 打赏
  • 举报
回复
最好的办法是,让程序自己去处理,程序起来后会去锁定一个叫.pid的文件,然后在启动它的时候发现这个文件被锁定了,就会自己退出。http://blog.csdn.net/changli_90/article/details/8911191 看这个blog,扫盲下。

23,215

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧