本文和大家分享的主要是python中僵尸进程的产生和清除相关内容,一起来看看吧,希望对大家学习python有所帮助。
僵尸进程产生的原因
在 unix 或 unix-like 的系统中,当一个子进程退出后,它就会变成一个僵尸进程,如果父进程没有通过wait 系统调用来读取这个子进程的退出状态的话,这个子进程就会一直维持僵尸进程状态。
并且僵尸进程无法通过 kill 命令来清除。
下面将探讨如何手动制造一个僵尸进程以及清除僵尸进程的办法。
手动制造一个僵尸进程
为了便于后面讲解清除僵尸进程的方法,我们使用日常开发中经常使用的 multiprocessing 模块来制造僵尸进程(准确的来说是制造一个长时间维持僵尸进程状态的子进程):
$ cat test_a.pyfrom multiprocessing import Process, current_processimport loggingimport osimport time
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)-15s - %(levelname)s - %(message)s'
)
def run():
logging.info('exit child process %s', current_process().pi