这里使用fork方法,当然也可以使用Process创建子进程,此时join就可以保证,父进程随子进程退出而退出,但没有测试

第一个CTRL+Z退出子进程,需要第二次CTRL+Z退出父进程,且退出方式都是sys.exit方法
存在以下问题:s.signal(s.SIGCLD, s.SIG_IGN)这句作用不理解,设置成s.SIG_DFL则使得子进程和父进程都无法退出,只能kill
#!/usr/bin/python3
import time
import os
from os import kill
import sys
import signal as s
from multiprocessing import Process, Value, Array, Event
def seller_handle(signum, frame):
if signum==s.SIGINT:
print('CTRL C',int(signum))
kill(os.getppid(),s.SIGUSR1)
elif signum==s.SIGQUIT:
print('CTRL \\' ,int(signum))
kill(os.getppid(),s.SIGUSR2)
elif signum==s.SIGUSR1:
sys.exit('arrived')
def driver_handle(signum, frame):
if signum==s.SIGTSTP:
print('CTRL Z' ,int(signum))
try:
# 如果子进程退出,则在shell使用CTRL+Z使得这句报错,然而父进程此时正好需要CTRL+Z来退出程序
kill(pid,s.SIGUSR1)
except Proc

本文探讨了使用fork创建子进程时,如何通过signal进行父子进程间的通信。介绍了CTRL+Z退出子进程后,父进程需要第二次CTRL+Z才能退出的情况,并指出设置s.signal(s.SIGCLD, s.SIG_IGN)的疑惑,以及当设置为s.SIG_DFL时,导致子进程和父进程无法正常退出的问题,需要借助kill强制结束。"
108552759,7520589,Selenium WebDriver高级操作指南,"['自动化测试', 'Selenium', 'Web测试', 'WebDriver', '前端测试']
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



