免费注册 查看新帖 |

Chinaunix

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

关于Unix下C编程实现进程控制的问题--高手请赐教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-16 21:58 |只看该作者 |倒序浏览
我现在需要对在程序中抛出的多个进程进行控制,即判断抛出的进程是否死掉,如果死掉了则杀之,请问各位大哥如何用C编程实现这些控制,多谢了!

论坛徽章:
0
2 [报告]
发表于 2003-03-17 08:29 |只看该作者

关于Unix下C编程实现进程控制的问题--高手请赐教

如果是僵尸进程,你也没有办法kill啊,你只有从程序上控制不生成僵尸进程。

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

关于Unix下C编程实现进程控制的问题--高手请赐教

用pid_t waitpid(pid_t pid, int *stat_loc, int options);或
   pid_t wait(int *stat_loc);在父进程中做这个调用。
如果是僵尸进程,init会收养的。

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

关于Unix下C编程实现进程控制的问题--高手请赐教

也可以使用sigaction函数使不产生僵尸进程

如果让init收养的话也是要父进程结束后init才会终止它的状态

论坛徽章:
0
5 [报告]
发表于 2003-03-17 16:41 |只看该作者

关于Unix下C编程实现进程控制的问题--高手请赐教

多谢各位大虾指教!

不过我想知道:
    抛出的子进程如果在运行过程中因出现问题而死掉或超时(不是成为僵尸进程),我如何得到子进程的状态信息,从而周期性的判断子进程是否死掉或超时,进而采取处理措施。请各位大虾能给出解决的方法。

还有就是:如果用wait()或waitpid(),父进程是不是一直等到子进程结束才继续执行下面的代码?

问题比较多,望各位大虾多多帮忙,小弟多谢了!

论坛徽章:
0
6 [报告]
发表于 2003-03-18 09:30 |只看该作者

关于Unix下C编程实现进程控制的问题--高手请赐教

在一个子进程终止前,wait使调用者阻塞,waitpid有一选项,可以使调用者不阻塞!

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

关于Unix下C编程实现进程控制的问题--高手请赐教

我认为最好在子进程中作充分的判断,防止其死掉或超时。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP