Python 訊號量

pythontab發表於2014-03-10

訊號的概念

訊號(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的呼叫堆疊.


相關文章