免费注册 查看新帖 |

Chinaunix

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

如何根据父进程被kill,来停止子进程? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-16 14:38 |只看该作者 |倒序浏览
现在我这里有一个shell,里面并发调用了很多子shell。
因为是cron任务,8点就要结束,没有结束的就要kill掉,但是子进程太多了,一个个的kill太麻烦了。
请问用那种方法解决比较妥当? 监听父进程的状态?

论坛徽章:
0
2 [报告]
发表于 2006-10-16 15:12 |只看该作者
你可以用killall -9 进程名字(不是pid号)

论坛徽章:
0
3 [报告]
发表于 2006-10-16 15:22 |只看该作者
add the following line to your shell file.
trap "cmd string"  9

论坛徽章:
0
4 [报告]
发表于 2006-10-16 15:46 |只看该作者
原帖由 seeLnd 于 2006-10-16 15:12 发表
你可以用killall -9 进程名字(不是pid号)

谢谢,进程名字是shell全路径吗?

论坛徽章:
0
5 [报告]
发表于 2006-10-16 15:47 |只看该作者
原帖由 tonyniu 于 2006-10-16 15:22 发表
add the following line to your shell file.
trap "cmd string"  9

能不能稍微解释一下这句话的含义?

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
6 [报告]
发表于 2006-10-16 15:51 |只看该作者
原帖由 tonyniu 于 2006-10-16 15:22 发表
add the following line to your shell file.
trap "cmd string"  9

据说信号9是无法捕获的

论坛徽章:
0
7 [报告]
发表于 2006-10-16 16:06 |只看该作者
意思应该是程序自己捕捉信号9,然后删除所有子进程。但是如楼上
捕捉3或者15吧

论坛徽章:
0
8 [报告]
发表于 2006-10-16 16:18 |只看该作者
我记得父进程退出后会给所有子进程发送信号,用trap “command” trapid 在子进程中捕捉一下该信号处理一下。
trap `exit 0`   xxx 就行了 xxx 代表 child exit 信号,具体自己查一下。
trap的用法 详细看 man trap。 应该是 捕获到 xxx 信号后执行 command。

论坛徽章:
0
9 [报告]
发表于 2006-10-16 16:51 |只看该作者
原帖由 tonyniu 于 2006-10-16 16:18 发表
我记得父进程退出后会给所有子进程发送信号,用trap “command” trapid 在子进程中捕捉一下该信号处理一下。
trap `exit 0`   xxx 就行了 xxx 代表 child exit 信号,具体自己查一下。
trap的用法 详细看 man  ...

如果,子进程下面还有子进程呢?最下面的子进程能受到这个信号吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP