免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4293 | 回复: 12
打印 上一主题 下一主题

如何检测进程是否存在? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-02 11:09 |只看该作者 |倒序浏览
如果知道一个进程的pid,如何在另外一个程序中根据这个pid来检测该进程是否存在?

我在编一个应用程序,创建若干子进程启动相应的程序。根据需要,我发出撤离指令,要某些子进程撤离,5秒后,若发现某一子进程未撤离,就发SIGQUIT信号给它,强行撤离它。
我创建子进程时,已经记录了pid号,所以,我需要知道这些子进程是否h活着。而且是程序自己判断,故不能在控制台用ps命令.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-12-02 11:14 |只看该作者

如何检测进程是否存在?

一个进程要是有了PID,那么它一定存在,所以命题是错误的

如果改成根据进程的名称找,是这样的

ps -ef | grep process_name

论坛徽章:
0
3 [报告]
发表于 2003-12-02 11:22 |只看该作者

如何检测进程是否存在?

还有一种特殊的僵尸进程可以不受限制。

论坛徽章:
0
4 [报告]
发表于 2003-12-02 11:23 |只看该作者

如何检测进程是否存在?

可能我没有说清楚。
我在编一个应用程序,创建若干子进程启动相应的程序。根据需要,我发出撤离指令,要某些子进程撤离,5秒后,若发现某一子进程未撤离,就发SIGQUIT信号给它,强行撤离它。
我创建子进程时,已经记录了pid号,所以,我需要知道这些子进程是否h活着。而且是程序自己判断,故不能在控制台用ps命令.

论坛徽章:
0
5 [报告]
发表于 2003-12-02 11:28 |只看该作者

如何检测进程是否存在?

[quote]原帖由 "race"]还有一种特殊的僵尸进程可以不受限制。[/quote 发表:


具体说说看,什么叫“僵尸进程”

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-12-02 11:43 |只看该作者

如何检测进程是否存在?

如果你说的程序是脚本的话,可以在脚本里判断

最好是用进程名

ps -ef | grep process_name
if  $? = 0
  then  do_something
else
  do_something_else
fi

用进程号的话,你应当用grep 抓 一下ps -ef 输出判断是否那行的第二项是这个进
程号,是就是还存在

ps -ef | grep -n pid | grep "2:pid"
if  $? =0
  then
   do_something
else
  do_something_else
fi

论坛徽章:
0
7 [报告]
发表于 2003-12-02 14:55 |只看该作者

如何检测进程是否存在?

谢谢laoxia,但我是用c语言做程序!

论坛徽章:
0
8 [报告]
发表于 2003-12-02 15:45 |只看该作者

如何检测进程是否存在?

这个要做好了。。不容易。。

现在好多大点的应用 。。有着个问题。

他们有好多都是通过。应用的那个 Daemon 来控制 子进程。如果 daemon kill 了。则收回全部。。

我能问问。你写哪方面的应用吗?

论坛徽章:
0
9 [报告]
发表于 2003-12-02 16:02 |只看该作者

如何检测进程是否存在?

一个用在火箭发射数据处理控制的大型应用程序!
根据需要对某些子进程kill,不能全部kill!

论坛徽章:
0
10 [报告]
发表于 2003-12-03 00:12 |只看该作者

如何检测进程是否存在?

kill -0 PID
或者直接在程序里发信号(没有试过)
我在双机监控教本中都是用kill -0 PID 来测试进程是否存活的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP