Python Signal 信号 (二十一)

常用信号类型
SIGINT     终止进程     中断进程,不可通过signal.signal()捕捉(相当于Ctrl+C)
SIGTERM    终止进程     软件终止信号,可通过signal.signal()捕捉(默认信号,当os.kill()没有指明信号类型时,默认的是该信号)
SIGKILL    终止进程     杀死进程,不可捕捉(相当于linux下的kill命令,windows下使用会抛出异常)
SIGALRM    闹钟信号     可以通过signal.alarm()和os.kill()发送该信号,可通过signal.signal()捕捉
SIGQUIT    退出进程     和SIGTERM类似,可通过signal.signal()捕捉


a.py

#coding=utf8
import signal,os,time
def onsignal_term(a,b):
    print '收到SIGTERM信号'

def onsignal_quit(a,b):
    print '收到SIGQUIT信号'

def onsignal_alrm(a,b):
    print '收到SIGALRM信号'
    
signal.signal(signal.SIGTERM,onsignal_term)
signal.signal(signal.SIGQUIT,onsignal_quit)
signal.signal(signal.SIGALRM,onsignal_alrm)
signal.alarm(10)
while 1:
    print '进程id:',os.getpid()
    time.sleep(2)

b.py
import os,signal,time
os.kill(5097,signal.SIGTERM)
time.sleep(5)
#如果进程被终止后面的信号不会起作用
os.kill(4976,signal.SIGINT)
os.kill(5006,signal.SIGKILL)
os.kill(5071,signal.SIGQUIT)
os.kill(5097,signal.SIGALRM)


你可能感兴趣的:(python,知识点,python,信号,signal)