在 C 中分叉 children 并在它们死亡时分叉 re-forking

Forking children in C and re-forking when they die

我有一些代码分叉了许多 child "workers"。 Child劳动:(

在 child 由于一些不可预测的错误和系统吞吐量下降而死之前,这工作得很好。

什么是监控 children 崩溃的好模式,然后 re-forking 使用我启动它们时使用的相同参数?我以前没有写过这种类型的代码,看起来有点棘手。

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

为了re-fork一个child当它崩溃时参数相同,你必须记录每个child的参数。