僵尸进程处理

写日志模块的时候处理sql语句用了子进程,结果子进程比父进程预先退出了,导致生成了一大堆的僵尸进程。原因我猜想就应该是子进程退出的时候给父进程发送信号,等待父进程进行资源回收。可是父进程没有对该信号做相应的处理导致子进程一直等待,变成了僵尸进程。所以要做的就是在父进程生成子进程之前设置下对于子进程信号的处理,可以忽略。

import signal
signal.signal(signal.SIGCHLD,signal.SIG_IGN)

其实现在比较新的内核版本的话可以用wait就解决了。

标签:Linux

评论已关闭