用C叉叉孩子,等他们死了再叉

Forking children in C and re-forking when they die

本文关键字:他们 孩子      更新时间:2023-10-16

我有一些代码派生了许多子"worker"。童工:(

这非常有效,直到一个孩子因一些不可预测的错误而死亡,系统吞吐量下降。

监控孩子们崩溃的好模式是什么,然后用我激发他们的参数重新分叉?我以前没有写过这种类型的代码,看起来有点棘手。

假设系统类似Unix,您可以在父进程中使用waitwaitpid来同步监视子进程。或者,您可以使用SIGCHLD异步监视它们,并在信号处理程序中调用waitwaitpid。每当子流程终止(包括崩溃)时,您都会收到通知。

要在崩溃时用相同的参数重新派生子级,您必须记录每个子级的参数。