代码改变世界

Python Signal(信号) 异步系统事件

2019-03-17 21:57  JohnRain  阅读(289)  评论(0编辑  收藏  举报

参考: https://blog.csdn.net/liangguohuan/article/details/7099978

常用信号

SIGINT 终止进程 中断进程 (control+c)

SIGTERM 终止进程 软件终止信号 (kill pid)

SIGKILL 终止进程 杀死进程

SIGALRM 闹钟信号

查看所有信号

>>> import signal

>>> dir(signal)

['NSIG', 'SIGABRT', 'SIGALRM', 'SIGBUS', 'SIGCHLD', 'SIGCLD', 'SIGCONT', 'SIGFPE', 'SIGHUP', 'SIGILL', 'SIGINT', 'SIGIO', 'SIGIOT', 'SIGKILL', 'SIGPIPE', 'SIGPOLL', 'SIGPROF', 'SIGPWR', 'SIGQUIT', 'SIGRTMAX', 'SIGRTMIN', 'SIGSEGV', 'SIGSTOP', 'SIGSYS', 'SIGTERM', 'SIGTRAP', 'SIGTSTP', 'SIGTTIN', 'SIGTTOU', 'SIGURG', 'SIGUSR1', 'SIGUSR2', 'SIGVTALRM', 'SIGWINCH', 'SIGXCPU', 'SIGXFSZ', 'SIG_DFL', 'SIG_IGN', '__doc__', '__name__', 'alarm', 'default_int_handler', 'getsignal', 'pause', 'signal']

例子:


import os  
import signal  
from time import sleep  
   
def onsignal_term(a,b):  
    print('收到SIGTERM信号')
   
#这里是绑定信号处理函数,将SIGTERM绑定在函数onsignal_term上面  
signal.signal(signal.SIGTERM,onsignal_term)  
   
def onsignal_usr1(a,b):  
    print('收到SIGUSR1信号')


signal.signal(signal.SIGUSR1,onsignal_usr1)  

def onsignal_int(a,b):  
    print('收到SIGUSR1信号')
#这里是绑定信号处理函数,将SIGUSR1绑定在函数onsignal_term上面  
signal.signal(signal.SIGINT,onsignal_int)  
   
while 1:  
    print('我的进程id是',os.getpid())
    sleep(10)