我的一个服务器(用C语言编写)使用fork()
创建'N'个子进程并委派其运行报告的任务。它没有能力监视它的活着或死亡的子进程。到目前为止的要求是每当活动进程的数量<1时产生新进程。 N.(比如说,如果五个子进程中有两个死了。)我应该生成另外两个进程。我正在使用socketpair()
在父级和子级进程之间进行通信。
我通过各种帖子阅读,但似乎他们谈论的是“预分叉”机制。
基本上,我对使用fork()
动态创建子进程感兴趣。可能吗?如果是的话,你能给我一些指示吗?
答案 0 :(得分:1)
如果您需要监视子进程并在它们出现故障时生成它们,那么这种方法可能会有所帮助。
使父进程在循环中使用waitpid
等待子进程中的更改。维护父级的计数器以跟踪活动的进程数。根据您的要求,您可以使用fork
调用创建一个或多个新子进程并更新计数器。
fork is here的人。
跟踪death of child is here的类似问题。