免费注册 查看新帖 |

Chinaunix

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

这样的子进程怎么杀死? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-13 15:03 |只看该作者 |倒序浏览
背景介绍:父进程创建了两类子进程:
A: 普通的子进程,运行完自动退出
B: 作为服务器的子进程,一直存在,如果死去,由父进程在捕捉到SIGCHLD信号后,
   立即将这个子进程重新启动。

   现在要程序实现这样的功能:接收一个外部传来的要求程序停止的消息,
程序要退出所有的进程,包括A ,B两类子进程以及父进程自身。

   问题:如果是由父进程逐个发送SIGKILL或SIGTERM信号的话,可以杀死A类进程,
但是,对于B类进程就不行了,因为SIGCHLD信号处理函数会将它重启。

   我现在用了一个可能产生副作用的方法 kill(0, SIGKILL), 杀死组内所有进程,这样的话,
同组内可能还有别的不属于我的程序的进程(有没有?)也被杀死,就会影响别的程序的运行。

请高手解答一下,怎么能干净的退出我的程序的所有进程?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP