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 试图杀死僵尸进程、父进进程,查看结果
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有