signal - 有效訊號的清單
下面 列出 Linux 支援的
訊號. 某些 訊號 依賴於
體系結構(architecture).
首先, POSIX.1 描述了 下列
訊號.
訊號 |
值 |
動作 |
說明 |
|
|
|
|
SIGHUP |
1 |
A |
在控制終端上是掛起訊號,
或者控制程序結束 |
SIGINT |
2 |
A |
從鍵盤輸入的中斷 |
SIGQUIT |
3 |
C |
從鍵盤輸入的退出 |
SIGILL |
4 |
C |
無效硬體指令 |
SIGABRT |
6 |
C |
非正常終止,
可能來自 abort(3) |
SIGFPE |
8 |
C |
浮點運算例外 |
SIGKILL |
9 |
AEF |
殺死程序訊號 |
SIGSEGV |
11 |
C |
無效的記憶體引用 |
SIGPIPE |
13 |
A |
管道中止:
寫入無人讀取的管道 |
SIGALRM |
14 |
A |
來自 alarm(2)
的超時訊號 |
SIGTERM |
15 |
A |
終止訊號 |
SIGUSR1 |
30,10,16 |
A |
使用者定義的訊號 1 |
SIGUSR2 |
31,12,17 |
A |
使用者定義的訊號 2 |
SIGCHLD |
20,17,18 |
B |
子程序結束或停止 |
SIGCONT |
19,18,25 |
|
繼續停止的程序 |
SIGSTOP |
17,19,23 |
DEF |
停止程序 |
SIGTSTP |
18,20,24 |
D |
終端上發出的停止訊號 |
SIGTTIN |
21,21,26 |
D |
後臺程序試圖從控制終端(tty)輸入 |
SIGTTOU |
22,22,27 |
D |
後臺程序試圖在控制終端(tty)輸出 |
下面的 訊號 定義 在 SUSv2
中, 而 POSIX.1 沒有 定義.
訊號 |
值 |
動作 |
說明 |
|
|
|
|
SIGBUS |
10,7,10 |
C |
匯流排錯誤
(不正確的記憶體訪問) |
SIGPOLL |
|
A |
I/O就緒事件 (Sys V).
等同於SIGIO |
SIGPROF |
27,27,29 |
A |
系統資源定時器(Profiling
timer)超時 |
SIGSYS |
12,-,12 |
C |
用錯誤引數呼叫系統例程
(SVID) |
SIGTRAP |
5 |
C |
跟蹤/斷點自陷 |
SIGURG |
16,23,21 |
B |
套介面上出現 urgent 情況
(4.2 BSD) |
SIGVTALRM |
26,26,28 |
A |
虛擬超時時鐘 (4.2 BSD) |
SIGXCPU |
24,24,30 |
C |
超過了CPU時間限制 (4.2
BSD) |
SIGXFSZ |
25,25,31 |
C |
超過了檔案大小限制
(4.2 BSD) |
(這裡的 SIGSYS, SIGXCPU, SIGXFSZ, 以及
某些 系統上 的 SIGBUS, Linux 的
預設動作 (到2.3.27版) 是
A(結束), 而 SUSv2 宣告是
C(結束且核心轉儲).)
下面 是 其他 幾個 訊號.
訊號 |
值 |
動作 |
說明 |
|
|
|
|
SIGIOT |
6 |
C |
IOT 自陷. 等同於 SIGABRT |
SIGEMT |
7,-,7 |
|
|
SIGSTKFLT |
-,16,- |
A |
協處理器堆疊錯誤 |
SIGIO |
23,29,22 |
A |
I/O 有效訊號 (4.2 BSD) |
SIGCLD |
-,-,18 |
|
等同於 SIGCHLD |
SIGPWR |
29,30,19 |
A |
電源無效 (System V) |
SIGINFO |
29,-,- |
|
等同於 SIGPWR |
SIGLOST |
-,-,- |
A |
檔案鎖丟失 |
SIGWINCH |
28,28,20 |
B |
視窗大小調整訊號 (4.3
BSD, Sun) |
SIGUNUSED |
-,31,- |
A |
未使用的訊號
(將成為 SIGSYS) |
這裡的 - 指 訊號 不存在;
可能 給出 三個值,
第一個值 一般 用於 alpha
和 sparc, 中間的值 用於 i386, ppc
和 sh, 最後一個 是 mips 的.
訊號29 在 alpha機上 是
SIGINFO /
SIGPWR , 而在 sparc機上 是
SIGLOST
"動作(Action)"欄 的 字母 有
下列 含義:
- A
- 預設動作是結束程序.
- B
- 預設動作是忽略這個訊號.
- C
- 預設動作是結束程序,
並且核心轉儲.
- D
- 預設動作是停止程序.
- E
- 訊號不能被捕獲.
- F
- 訊號不能被忽略.
(譯註: 這裡 "結束" 指
程序 終止 並 釋放資源,
"停止" 指 程序 停止
執行, 但是 資源 沒有
釋放, 有可能 繼續 執行.)
POSIX.1
SIGIO 和
SIGLOST 有 相同的 值.
後者 在 核心 原始碼 中
被註釋 掉了, 但是 某些
軟體 構造的 程序 仍然
認為 訊號29 是
SIGLOST.
kill(1),
kill(2),
setitimer(2)
徐明 <[email protected]>
2000/10/15 第一版
2001/11/24 第一次修訂
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh