【发布时间】:2015-05-29 21:22:03
【问题描述】:
我有一些代码分叉了许多子“工人”。童工:(
这工作得很好,直到孩子因一些不可预测的错误而死亡并且系统吞吐量下降。
什么是监控孩子崩溃的好模式,然后用我解雇他们的相同参数重新分叉他们?我以前没有写过这种类型的代码,看起来有点棘手。
【问题讨论】:
-
哪一部分比较棘手?
标签: c++ c multiprocessing ipc daemon
我有一些代码分叉了许多子“工人”。童工:(
这工作得很好,直到孩子因一些不可预测的错误而死亡并且系统吞吐量下降。
什么是监控孩子崩溃的好模式,然后用我解雇他们的相同参数重新分叉他们?我以前没有写过这种类型的代码,看起来有点棘手。
【问题讨论】:
标签: c++ c multiprocessing ipc daemon
假设类Unix系统,可以在父进程中使用wait或waitpid同步监控子进程。或者,您可以使用SIGCHLD 异步监控它们,并在信号处理程序中调用wait 或waitpid。每当子进程终止(包括崩溃)时,您都会收到通知。
要在崩溃时使用相同参数重新分叉一个子节点,您必须记录每个子节点的参数。
【讨论】: