SIGHUP
|
1
|
Exit
|
Hangup
如果终端界面检测到一个连接断开,则将此信号送给与该终端相关的控制进程(对话期首进程)。此信号被送给
session
结构中s_leader
字段所指向的进程。仅当终端的
CLOCAL
标志没有设置时,在上述条件下才产生此信号。(如果所连接的终端是本地的,才设置该终端的CLOCAL
标志。它告诉终端驱动程序忽略所有调制解调器的状态行。注意,接到此信号的对话期首进程可能在后台。
|
SIGINT
|
2
|
Exit
|
Interrupt
当用户按中断键(一般采用DELETE
或Ctrl-C
)时,终端驱动程序产生此信号并送至前台进程组中的每一个进程。当一个进程在运行时失控,特别是它正在屏幕上产生大量不需要的输出时,常用此信号终止它。
|
SIGQUIT
|
3
|
Core
|
Quit
当用户在终端上按退出键(一般采用Ctrl-/
)时,产生此信号,并送至前台进程组中的所有进程。此信号不仅终止前台进程组(如SIGINT
所做的那样),同时产生一个core
文件。
|
SIGILL
|
4
|
Core
|
Illegal Instruction
|
SIGTRAP
|
5
|
Core
|
Trace/Breakpoint Trap
指示一个实现定义的硬件故障。
|
SIGABRT
|
6
|
Core
|
Abort
进程异常终止
|
SIGEMT
|
7
|
Core
|
Emulation Trap
指示一个实现定义的硬件故障。
|
SIGFPE
|
8
|
Core
|
Arithmetic Exception
此信号表示一个算术运算异常,例如除以0
,浮点溢出等。
|
SIGKILL
|
9
|
Exit
|
Killed
这是两个不能被捕捉或忽略信号中的一个。它向系统管理员提供了一种可以杀死任一进程的可靠方法。
|
SIGBUS
|
10
|
Core
|
Bus Error
指示一个实现定义的硬件故障
|
SIGSEGV
|
11
|
Core
|
Segmentation Fault
指示进程进行了一次无效的存储访问。
|
SIGSYS
|
12
|
Core
|
Bad System Call
指示一个无效的系统调用。由于某种未知原因,进程执行了一条系统调用指令,但其指示系统调用类型的参数却是无效的。
|
SIGPIPE
|
13
|
Exit
|
Broken Pipe
如果在读进程已终止时写管道,则产生此信号。当套接口的一端已经终止时,若进程写该套接口也产生此信号。
|
SIGALRM
|
14
|
Exit
|
Alarm Clock
超过用alarm
函数设置的时间时产生
|
SIGTERM
|
15
|
Exit
|
Terminated
这是由kill(1)
命令发送的系统默认终止信号。
|
SIGUSR1
|
16
|
Exit
|
User Signal 1
这是一个用户定义的信号,可用于应用程序。
|
SIGUSR2
|
17
|
Exit
|
User Signal 2
这是一个用户定义的信号,可用于应用程序。
|
SIGCHLD
|
18
|
Ignore
|
Child Status
在一个进程终止或停止时,SIGCHLD
信号被送给其父进程。系统默认,忽略此信号。如果父进程希望了解其子进程的这种状态改变,则应捕捉此信号。信号捕捉函数
中通常要调用w a i t
函数以取得子进程I D
和其终止状态。
|
SIGPWR
|
19
|
Ignore
|
Power Fail/Restart
这是一种SVR4
信号,它依赖于系统。它主要用于具有不间断电源(UPS)
的系统上。如果电源失效,则UPS
起作用,而且通常软件会接到通知。在这种情况下,系统依靠蓄电池电源继续运行,所以无须作任何处理。但是如果蓄电池也将不能支持工作,则软件通常会再次接到通知,此时,它在15
~30
秒内使系统各部分都停止运行。此时应当传递
SIGPWR
信号。在大多数系统中使接到蓄电池电压过低的进程将信号SIGPWR
发送给init
进程,然后由init
处理停机操作。很多系统V
的init
实现在inittab
文件中提供了两个记录项用于此种目的;powerfail
以及powerwait
。
|
SIGWINCH
|
20
|
Ignore
|
Window Size Change SVR4
和4.3 + BSD
内核保持与每个终端或伪终端相关联的窗口的大小。一个进程可以用ioctl
函数得到或设置窗口的大小。如果一个进程用 ioctl
的设置-
窗口-
大小命令更改了窗口大小,则内核将SIGWINCH
信号送至前台进程组。
|
SIGURG
|
21
|
Ignore
|
Urgent Socket Condition
此信号通知进程已经发生一个紧急情况。在网络连接上,接到非规定波特率的
数据时,此信号可选择地产生。
|
SIGPOLL
|
22
|
Ignore
|
Socket I/O Possible
这是一种SVR4
信号,当在一个可轮询设备上发生一特定事件时产生此信号。它与4.3+BSD
的SIGIO
和SIGURG
信号接近。
|
SIGSTOP
|
23
|
Stop
|
Stopped (signal)
这是一个作业控制信号,它停止一个进程。它类似于交互停止信号(SIGTSTP)
,但是SIGSTOP
不能被捕捉或忽略。
|
SIGTSTP
|
24
|
Stop
|
Stopped (user)
交互停止信号,当用户在终端上按挂起键
(一般采用Ctrl-Z
)时,终端驱动程序产生此信号。
|
SIGCONT
|
25
|
Ignore
|
Continued
此作业控制信号送给需要继续运行的处于停止状态的进程。如果接收到此信号的进程处于停止状态,则系统默认动作是使该进程继续运行,否则默认动作是忽略此信号
|
SIGTTIN
|
26
|
Stop
|
Stopped (tty input)
当一个后台进程组进程试图读其控制终端时,终端驱动程序产生此信号。在下列例外情形下不产生此信号,此时读操作返回出错, errno
设置为EIO
:(a)
读进程忽略或阻塞此信号,或(b)
读进程所属的进程组是孤儿进程组。
|
SIGTTOU
|
27
|
Stop
|
Stopped (tty output)
当一个后台进程组进程试图写其控制终端时产生此信号。与上面所述的SIGTTIN
信号不同,一个进程可以选择为允许后台进程写控制终端。如果不允许后台进程写,则与SIGTTIN
相似也有两种特殊情况:(a )
写进程忽略或阻塞此信号,或(b)
写进程所属进程组是孤儿进程组。在这两种情况下不产生此信号,写操作返回出错,errno
设置为EIO
。
不论是否允许后台进程写,某些除写以外的下列终端操作也能产生此信号: tcsetattr,tcsendbreak,
tcdrain, tcflush, tcflow
以及tcsetpgrp
。
|
SIGVTALRM
|
28
|
Exit
|
Virtual Timer Expired
当一个由setitimer(2)
函数设置的虚拟间隔时间已经超过时产生此信号。
|
SIGPROF
|
29
|
Exit
|
Profiling Timer Expired
当setitimer(2)
函数设置的梗概统计间隔时间已经超过时产生此信号。
|
SIGXCPU
|
30
|
Core
|
CPU time limit exceeded SVR4
和4.3+BSD
支持资源限制的概念。如果进程超过了其软CPU
时间限制,则产生此信号。
|
SIGXFSZ
|
31
|
Core
|
File size limit exceeded
如果进程超过了其软文件长度限制,则SVR4
和4.3+BSD
产生此信号。
|
SIGWAITING
|
32
|
Ignore
|
All LWPs blocked
|
SIGLWP
|
33
|
Ignore
|
Virtual Interprocessor Interrupt for Threads
Library
|
SIGAIO
|
34
|
Ignore
|
Asynchronous I/O
此信号指示一个异步I/O
事件。
|