Linux 的各種 signal


2) SIGINT 
程序終止(interrupt)信號, 在用戶鍵入INTR字符(通常是Ctrl-C)時發出,用於通知前台進程組終止進程。

3) SIGQUIT 
和SIGINT類似, 但由QUIT字符(通常是Ctrl-\)來控制. 進程在因收到SIGQUIT退出時會產生core文件, 在這個意義上類似於一個程序錯誤信號。

4) SIGILL 
執行了非法指令. 通常是因為可執行文件本身出現錯誤, 或者試圖執行數據段. 堆棧溢出時也有可能產生這個信號。

5) SIGTRAP 
由斷點指令或其它trap指令產生. 由debugger使用。

6) SIGABRT 
調用abort函數生成的信號。

7) SIGBUS 
非法地址, 包括內存地址對齊(alignment)出錯。比如訪問一個四個字長的整數, 但其地址不是4的倍數。它與SIGSEGV的區別在於后者是由於對合法存儲地址的非法訪問觸發的(如訪問不屬於自己存儲空間或只讀存儲空間)。

8) SIGFPE 
在發生致命的算術運算錯誤時發出. 不僅包括浮點運算錯誤, 還包括溢出及除數為0等其它所有的算術的錯誤。

9) SIGKILL 
用來立即結束程序的運行. 本信號不能被阻塞、處理和忽略。如果管理員發現某個進程終止不了,可嘗試發送這個信號。

10) SIGUSR1 
留給用戶使用

11) SIGSEGV 
試圖訪問未分配給自己的內存, 或試圖往沒有寫權限的內存地址寫數據. 

 信號 11,即表示程序中可能存在特定條件下的非法內存訪問。

12) SIGUSR2 
留給用戶使用

13) SIGPIPE 
管道破裂。這個信號通常在進程間通信產生,比如采用FIFO(管道)通信的兩個進程,讀管道沒打開或者意外終止就往管道寫,寫進程會收到SIGPIPE信號。此外用Socket通信的兩個進程,寫進程在寫Socket的時候,讀進程已經終止。

14) SIGALRM 
時鍾定時信號, 計算的是實際的時間或時鍾時間. alarm函數使用該信號.

15) SIGTERM 
程序結束(terminate)信號, 與SIGKILL不同的是該信號可以被阻塞和處理。通常用來要求程序自己正常退出,shell命令kill缺省產生這個信號。如果進程終止不了,我們才會嘗試SIGKILL。

17) SIGCHLD 
子進程結束時, 父進程會收到這個信號。

如果父進程沒有處理這個信號,也沒有等待(wait)子進程,子進程雖然終止,但是還會在內核進程表中占有表項,這時的子進程稱為僵屍 進程。這種情 況我們應該避免(父進程或者忽略SIGCHILD信號,或者捕捉它,或者wait它派生的子進程,或者父進程先終止,這時子進程的終止自動由init進程 來接管)。

18) SIGCONT 
讓一個停止(stopped)的進程繼續執行. 本信號不能被阻塞. 可以用一個handler來讓程序在由stopped狀態變為繼續執行時完成特定的工作. 例如, 重新顯示提示符

19) SIGSTOP 
停止(stopped)進程的執行. 注意它和terminate以及interrupt的區別:該進程還未結束, 只是暫停執行. 本信號不能被阻塞, 處理或忽略.

20) SIGTSTP 
停止進程的運行, 但該信號可以被處理和忽略. 用戶鍵入SUSP字符時(通常是Ctrl-Z)發出這個信號

21) SIGTTIN 
當后台作業要從用戶終端讀數據時, 該作業中的所有進程會收到SIGTTIN信號. 缺省時這些進程會停止執行.

22) SIGTTOU 
類似於SIGTTIN, 但在寫終端(或修改終端模式)時收到.

23) SIGURG 
有"緊急"數據或out-of-band數據到達socket時產生.

24) SIGXCPU 
超過CPU時間資源限制. 這個限制可以由getrlimit/setrlimit來讀取/改變。

25) SIGXFSZ 
當進程企圖擴大文件以至於超過文件大小資源限制。

26) SIGVTALRM 
虛擬時鍾信號. 類似於SIGALRM, 但是計算的是該進程占用的CPU時間.

27) SIGPROF 
類似於SIGALRM/SIGVTALRM, 但包括該進程用的CPU時間以及系統調用的時間.

28) SIGWINCH 
窗口大小改變時發出.

29) SIGIO 
文件描述符准備就緒, 可以開始進行輸入/輸出操作.

30) SIGPWR 
Power failure

31) SIGSYS 
非法的系統調用。


免責聲明!

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



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