The signals of UNIX/Linux systems:
|Signal|Description|
|SIGABRT|由调用 abort
函数产生,进程非正常退出|
|SIGALRM|用 alarm
函数设置的 timer
超时或 setitimer
函数设置的 interval timer
超时|
|SIGBUS|某种特定的硬件异常,通常由内存访问引起|
|SIGCANCEL|由 Solaris Thread Library
内部使用,通常不会使用|
|SIGCHLD|进程 Terminate
或 Stop
的时候, SIGCHLD
会发送给它的父进程。缺省情况下该 Signal
会被忽略|
|SIGCONT|当被 Stop
的进程恢复运行的时候,自动发送|
|SIGEMT|和实现相关的硬件异常|
|SIGFPE|数学相关的异常,如被 0 除,浮点溢出,等等|
|SIGFREEZE|Solaris
专用,Hiberate
或者 Suspended
时候发送|
|SIGHUP|发送给具有 Terminal
的 Controlling Process
,当 Terminal 被 disconnect
时候发送|
|SIGILL|非法指令异常|
|SIGINFO|BSD signal。由 Status Key
产生,通常是 CTRL+T
。发送给所有 Foreground Group
的进程|
|SIGINT|由 Interrupt Key
产生,通常是 CTRL+C
或者 DELETE
。发送给所有 ForeGround Group
的进程|
|SIGIO|异步 I/O 事件|
|SIGIOT|实现相关的硬件异常,一般对应 SIGABRT
|
|SIGKILL|无法处理和忽略。中止某个进程|
|SIGLWP|由 Solaris Thread Libray
内部使用|
|SIGPIPE|在 reader
中止之后写 Pipe
的时候发送|
|SIGPOLL|当某个事件发送给 Pollable Device
的时候发送|
|SIGPROF|setitimer
指定的 Profiling Interval Timer
所产生|
|SIGPWR|和系统相关。和 UPS 相关。|
|SIGQUIT|输入 Quit Key
的时候(CTRL+\
)发送给所有 Foreground Group
的进程|
|SIGSEGV|非法内存访问|
|SIGSTKFLT|Linux
专用,数学协处理器的栈异常|
|SIGSTOP|中止进程。无法处理和忽略。|
|SIGSYS|非法系统调用|
|SIGTERM|请求中止进程,kill
命令缺省发送|
|SIGTHAW|Solaris
专用,从 Suspend
恢复时候发送|
|SIGTRAP|实现相关的硬件异常。一般是调试异常|
|SIGTSTP|Suspend Key
,一般是 Ctrl+Z
。发送给所有 Foreground Group
的进程|
|SIGTTIN|当 Background Group
的进程尝试读取 Terminal
的时候发送|
|SIGTTOU|当 Background Group
的进程尝试写 Terminal
的时候发送|
|SIGURG|当 out-of-band data
接收的时候可能发送|
|SIGUSR1|用户自定义 signal 1|
|SIGUSR2|用户自定义 signal 2|
|SIGVTALRM|setitimer
函数设置的 Virtual Interval Timer
超时的时候|
|SIGWAITING|Solaris Thread Library
内部实现专用|
|SIGWINCH|当 Terminal
的窗口大小改变的时候,发送给 Foreground Group
的所有进程|
|SIGXCPU|当 CPU 时间限制超时的时候|
|SIGXFSZ|进程超过文件大小限制|
|SIGXRES|Solaris
专用,进程超过资源限制的时候发送|