这里使用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