没有孩子再次处理错误

时间:2011-09-28 09:22:15

标签: python linux fork signals

我有一个正在运行的进程(如果你愿意,可以将其称为主进程)。在某些时候它会分叉一个进程说proc1做其他事情。在某些其他方面,proc1决定它需要一个子进程来做一些杂务,我们称之为proc2。

proc2做生意或在无限循环中运行,此时proc1向其子proc2发送一个sigterm信号。无论如何,无论如何,proc2干净利落地完成。当proc2正在执行必要的东西时,proc1正在等待proc2完成。当waitpid()报告proc2为完成时proc1发送自己的sigterm并退出。在那一刻,主要过程是在循环中使用waitpid(pid,WNOHANG)进行检查。当proc1从主进程完成我的waitpid时抛出一个错误: * atexit._run_exitfuncs中的错误:OSError:[Errno 10]没有子进程* sys.exitfunc中的错误:OSError :[Errno 10]没有子进程

根据我所学习的类似问题,处理SIGCHLD信号存在问题。如果这是问题,我不清楚如何解决它。 目前我通过将trypid()置于try除了块的主进程中来解决这个问题。还有其他方法吗?有更好的方法吗?

如果有帮助我可以添加一个我一直在摆弄复制错误的例子。 提前谢谢。

0 个答案:

没有答案