Python Signal 信號


https://blog.csdn.net/kongxx/article/details/50976802

http://blog.itpub.net/7728585/viewspace-2142060/

http://www.ywnds.com/?p=12330

def signal_quit(num,frame):
    print "\n"
    print "dddd..."
    sys.exit(1)
def func_signal_handle():
    signal.signal(signal.SIGINT,signal_quit) #執行ctrl+c會中斷
    signal.signal(signal.SIGTERM,signal_quit) #SIGTERM比較友好,進程能捕捉這個信號,根據你的需要來關閉程序
while 1:
    func_signal_handle()

 

1) SIGHUP:當用戶退出shell時,由該shell啟動的所有進程將收到這個信號,默認動作為終止進程
2)SIGINT:當用戶按下了<Ctrl+C>組合鍵時,用戶終端向正在運行中的由該終端啟動的程序發出此信號。默認動
作為終止里程。
3)SIGQUIT:當用戶按下<ctrl+\>組合鍵時產生該信號,用戶終端向正在運行中的由該終端啟動的程序發出些信
號。默認動作為終止進程。
4)SIGILL:CPU檢測到某進程執行了非法指令。默認動作為終止進程並產生core文件
5)SIGTRAP:該信號由斷點指令或其他 trap指令產生。默認動作為終止里程 並產生core文件。
6 ) SIGABRT:調用abort函數時產生該信號。默認動作為終止進程並產生core文件。
7)SIGBUS:非法訪問內存地址,包括內存對齊出錯,默認動作為終止進程並產生core文件。
8)SIGFPE:在發生致命的運算錯誤時發出。不僅包括浮點運算錯誤,還包括溢出及除數為0等所有的算法錯誤。默
認動作為終止進程並產生core文件。
9)SIGKILL:無條件終止進程。本信號不能被忽略,處理和阻塞。默認動作為終止進程。它向系統管理員提供了可
以殺死任何進程的方法。
10)SIGUSE1:用戶定義 的信號。即程序員可以在程序中定義並使用該信號。默認動作為終止進程。
11)SIGSEGV:指示進程進行了無效內存訪問。默認動作為終止進程並產生core文件。
12)SIGUSR2:這是另外一個用戶自定義信號 ,程序員可以在程序中定義 並使用該信號。默認動作為終止進程。1
13)SIGPIPE:Broken pipe向一個沒有讀端的管道寫數據。默認動作為終止進程。
14) SIGALRM:定時器超時,超時的時間 由系統調用alarm設置。默認動作為終止進程。
15)SIGTERM:程序結束信號,與SIGKILL不同的是,該信號可以被阻塞和終止。通常用來要示程序正常退出。執行
shell命令Kill時,缺省產生這個信號。默認動作為終止進程。
16)SIGCHLD:子進程結束時,父進程會收到這個信號。默認動作為忽略這個信號。
17)SIGCONT:停止進程的執行。信號不能被忽略,處理和阻塞。默認動作為終止進程。
18)SIGTTIN:后台進程讀終端控制台。默認動作為暫停進程。
19)SIGTSTP:停止進程的運行。按下<ctrl+z>組合鍵時發出這個信號。默認動作為暫停進程。
21)SIGTTOU:該信號類似於SIGTTIN,在后台進程要向終端輸出數據時發生。默認動作為暫停進程。
22)SIGURG:套接字上有緊急數據時,向當前正在運行的進程發出些信號,報告有緊急數據到達。如網絡帶外數據
到達,默認動作為忽略該信號。
23)SIGXFSZ:進程執行時間超過了分配給該進程的CPU時間 ,系統產生該信號並發送給該進程。默認動作為終止
進程。
24)SIGXFSZ:超過文件的最大長度設置。默認動作為終止進程。
25)SIGVTALRM:虛擬時鍾超時時產生該信號。類似於SIGALRM,但是該信號只計算該進程占用CPU的使用時間。默
認動作為終止進程。
26)SGIPROF:類似於SIGVTALRM,它不公包括該進程占用CPU時間還包括執行系統調用時間。默認動作為終止進
程。
27)SIGWINCH:窗口變化大小時發出。默認動作為忽略該信號。
28)SIGIO:此信號向進程指示發出了一個異步IO事件。默認動作為忽略。
29)SIGPWR:關機。默認動作為終止進程。
30)SIGSYS:無效的系統調用。默認動作為終止進程並產生core文件。
31)SIGRTMIN~(64)SIGRTMAX:LINUX的實時信號,它們沒有固定的含義(可以由用戶自定義)。所有的實時信
號的默認動作都為終止進程

其次我們經常的按鍵也可以產生
Ctrl+c 2)SIGINT
Ctrl+\ 3)SIGQUIT
Ctrl+z 4)SIGTSTP





免責聲明!

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



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