Python中常用信号signal类型实例

时间:2022-11-20 20:47:56

本文研究的主要是Python中的Signal 信号的相关内容,具体如下。

常用信号类型

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

a.py

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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

?
1
2
3
4
5
6
7
8
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中常用信号signal类型实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://blog.csdn.net/xhw88398569/article/details/48976227