0

fork()我的一台服务器是用 C 语言编写的,它使用并委派其运行报告的任务来创建“N”个子进程。它没有能力监视它的子进程是否活着或死了。目前的要求是,只要活动进程的数量小于 N,就生成一个新进程。(例如,如果五个子进程中有两个死了。)我应该再生成两个进程。我正在使用socketpair()父进程和子进程之间进行通信。

我阅读了各种帖子,但似乎他们谈论的是“预分叉”机制。本质上,我对使用fork(). 是否可以?如果是的话,你能给我一些指点吗?

4

1 回答 1

1

如果您需要监视子进程并在它们关闭时生成它们,那么这种方法可能会有所帮助。

waitpid使父进程在循环中等待子进程的更改。在父节点上维护一个计数器以跟踪活动进程的数量。根据您的要求,您可以使用fork调用创建一个或多个新的子进程并更新计数器。

分叉的人来了。

跟踪孩子死亡的类似问题在这里

于 2013-06-17T13:45:56.120 回答