訊號的概念
訊號(signal)-- 程式之間通訊的方式,是一種軟體中斷。一個程式一旦接收到訊號就會打斷原來的程式執行流程來處理訊號。
幾個常用訊號:
SIGINT 終止程式 中斷程式 (control+c)
SIGQUIT 退出程式
SIGTERM 終止程式 軟體終止訊號 (預設訊號)
SIGKILL 終止程式 殺死程式
SIGALRM 鬧鐘訊號
例如,要在按下control+c終止程式的時候,做些處理,程式碼如下:
import signal
def fun(sig, stack_frame):
print 'eixt %d, %s' % (sig,stack_frame)
exit(1)
signal.signal(signal.SIGINT, fun)
signal.signal(signal.SIGINT, fun)用來註冊訊號量的處理函式,
第一個引數是訊號量,第二個引數可以傳一個函式,
這個函式預設帶有兩個引數,第一個引數sig表示接收的訊號量,第二個stack_frame可以理解為產生中斷訊號量sig的呼叫堆疊.