繁体   English   中英

如何等待所有子进程终止并获得每个退出状态

[英]How to wait for ALL child processes to terminate and get each exit status

所以我做了一些研究但不是很多似乎适合我的情况或者我只是不理解它。

我基本上有一个父进程分叉 - 它生成一个孩子..现在这个孩子也会在某个时候分叉。

我希望父进程..主父能够捕获任何子项的退出状态(第一个分叉的子级以及分叉时其任何子级的子级)

如果出现问题,我基本上有任何进程退出..并且我希望主要父级接收此退出状态..如果由于错误而退出,我可以像if语句一样捕获它并打印出来。

当前..我可以捕获第一个孩子是否退出并出现错误,并获得正确的exitstatus ..但它的任何一个孩子都行不通。 不确定我是否必须使用一个奇怪版本的waitpid或什么。

我该怎么做呢?

调用等待系统调用(或waitpid(-1, &status, 0) )。 或者等待一些进程组ID(因为所有间接子进程都共享相同的进程组,除非他们更改它)。 也许用setpgid创建自己的进程组

当孩子退出时,您会收到SIGCHLD 信号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM