Python Signal 訊號 (二十一)
阿新 • • 發佈:2019-02-19
常用訊號型別
b.py
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)