python百例

105-解决僵尸进程问题

2018-08-09  本文已影响1人  凯茜的老爸

os.waitpid()的第2个参数,0表示挂起父进程,1表示不挂起父进程。

import os
import time

pid = os.fork()

if pid:
    print('In parent. sleeping...')
    print(os.waitpid(-1, 1))  # 无僵尸进程可以处理,返回0
    time.sleep(20)
    print(os.waitpid(-1, 1))  # 处理僵尸进程,返回子进程PIP
    time.sleep(60)
    print('parent done.')
else:
    print('in child. sleeping...')
    time.sleep(10)
    print('child done')

# watch -n1 ps a  当子进程成为僵尸进程时,显示为Z
# kill 试图杀死僵尸进程、父进进程,查看结果
上一篇 下一篇

猜你喜欢

热点阅读