python signal(信號)


信號的概念

信號(signal)--     進程之間通訊的方式,是一種軟件中斷。一個進程一旦接收到信號就會打斷原來的程序執行流程來處理信號。

幾個常用信號:

SIGINT     終止進程  中斷進程  (control+c)

SIGTERM   終止進程     軟件終止信號

SIGKILL   終止進程     殺死進程

SIGALRM 鬧鍾信號

 

進程結束信號 SIGTERM和SIGKILL的區別

SIGTERM比較友好,進程能捕捉這個信號,根據您的需要來關閉程序。在關閉程序之前,您可以結束打開的記錄文件和完成正在做的任務。在某些情況下,假如進程正在進行作業而且不能中斷,那么進程可以忽略這個SIGTERM信號。

對於SIGKILL信號,進程是不能忽略的。這是一個 “我不管您在做什么,立刻停止”的信號。假如您發送SIGKILL信號給進程,Linux就將進程停止在那里。

 

發送信號一般有兩種原因:

1(被動式)  內核檢測到一個系統事件.例如子進程退出會像父進程發送SIGCHLD信號.鍵盤按下control+c會發送SIGINT信號

2(主動式)  通過系統調用kill來向指定進程發送信號

 

linux操作系統提供的信號

[100003@oss235 myppt]$ kill -l

 1) SIGHUP           2) SIGINT       3) SIGQUIT      4) SIGILL

 5) SIGTRAP         6) SIGABRT      7) SIGBUS       8) SIGFPE

 9) SIGKILL         10) SIGUSR1     11) SIGSEGV     12) SIGUSR2

13) SIGPIPE         14) SIGALRM     15) SIGTERM     16) SIGSTKFLT

17) SIGCHLD       18) SIGCONT     19) SIGSTOP     20) SIGTSTP

21) SIGTTIN        22) SIGTTOU     23) SIGURG      24) SIGXCPU

25) SIGXFSZ       26) SIGVTALRM   27) SIGPROF     28) SIGWINCH

29) SIGIO           30) SIGPWR      31) SIGSYS      34) SIGRTMIN

35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4

39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8

43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12

47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14

51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10

55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6

59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2

63) SIGRTMAX-1  64) SIGRTMAX

Python提供的信號

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import signal
>>> dir(signal)
['CTRL_BREAK_EVENT', 'CTRL_C_EVENT', 'NSIG', 'SIGABRT', 'SIGBREAK', 'SIGFPE', 
'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_IGN',
'__doc__', '__name__', '__package__', 'default_int_handler', 'getsignal', 'set_wakeup_fd', 'signal'] >>>

 


操作系統規定了進程收到信號以后的默認行為

但是,我們可以通過綁定信號處理函數來修改進程收到信號以后的行為

有兩個信號是不可更改的SIGTOP和SIGKILL

 

先貼下基本知識,了解了解

轉自:http://blog.csdn.net/jhonguy/article/details/7716257


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM