34种常见信号及其默认操作
名字 | 说明 | 缺省动作 |
---|---|---|
S I G A B R T | 异常终止(abort) | 终止w/core |
S I G A L R M | 超时(alarm) | 终止 |
S I G B U S | 硬件故障 | 终止w/core |
S I G C H L D | 子进程状态改变 | 忽略 |
S I G C O N T | 使暂停进程继续执行 | 继续/忽略 |
S I G E M T | 硬件故障 | 终止w/core |
S I G F P E | 算数异常 | 终止为/core |
S I G H U P | 连接断开 | 终止 |
S I G I L L | 非法硬件指令 | 终止w/core |
S I G I N F O | 键盘状态请求 | 忽略 |
S I G I N T | 终端中断符 | 终止 |
S I G I O | 异步I/O | 终止/忽略 |
S I G I O T | 硬件故障 | 终止w/core |
S I G K I L L | 终止 | 终止 |
S I G P I P E | 写至无读进程的管道 | 终止 |
S I G P O L L | 写轮循事件(poll) | 终止 |
S I G P R O F | 梗概时间超时(setitimer) | 终止 |
S I G P W R | 电源失效/再启动 | 忽略 |
S I G Q U I T | 终端退出符 | 终止w/core |
S I G S E G V | 无效存储访问 | 终止w/core |
S I G S T O P | 停止 | 暂停进程 |
S I G S Y S | 无效系统调用 | 终止w/core |
S I G T E R M | 终止 | 终止 |
S I G T R A P | 硬件故障 | 终止w/core |
S I G T S T P | 终端挂起符 | 停止进程 |
S I G T T I N | 后台从控制tty读 | 停止进程 |
S I G T T O U | 后台向控制tty写 | 停止进程 |
S I G U R G | 紧急情况 | 忽略 |
S I G V T A L R M | 虚拟时间闹钟 | 终止 |
S I G X C P U | 超cpu限制 | 终止w/core |
S I G X F S Z | 超过文件长度限制 | 终止为/core |
在系统默认动作列,“终止w / c o r e”表示在进程当前工作目录的 c o r e文件中复制了该进程的
存储图像(该文件名为 c o r e,由此可以看出这种功能很久之前就是 U N I X功能的一部分)。大多
数U N I X调试程序都使用 c o r e文件以检查进程在终止时的状态。在下列条件下不产生 c o r e文件:
( a )进程是设置 -用户- I D,而且当前用户并非程序文件的所有者,或者 ( b )进程是设置 -组- I D,而
且当前用户并非该程序文件的组所有者,或者 ( c )用户没有写当前工作目录的许可权,或者 ( d )
文件太大 (回忆7 . 11节中的R L I M I T _ C O R E )。c o r e文件的许可权 (假定该文件在此之前并不存在 )
通常是用户读/写,组读和其他读。
下面比较详细地说明部分信号:
- SIGCHLD 在一个进程终止或停止时,S I G C H L D信号被送给其父进程。按系统默认,将
忽略此信号。如果父进程希望了解其子进程的这种状态改变,则应捕捉此信号。信号捕捉函数
中通常要调用w a i t函数以取得子进程 I D和其终止状态。 - SIGCONT 此作业控制信号送给需要继续运行的处于停止状态的进程。如果接收到此信
号的进程处于停止状态,则系统默认动作是使该进程继续运行,否则默认动作是忽略此信号。
例如,v i编辑程序在捕捉到此信号后,重新绘制终端屏幕 - SIGFPE 此信号表示一个算术运算异常,例如除以 0,浮点溢出等。
- SIGSTOP 这是一个作业控制信号,它停止一个进程。它类似于交互停止信号( S I G T S T P ),
但是S I G S TO P不能被捕捉或忽略。 - 交互停止信号,当用户在终端上按挂起键 (一般采用 C t r l - Z)时,终端驱动
程序产生此信号。 - SIGTTIN 当一个后台进程组进程试图读其控制终端时,终端驱动程序产生此信号。在下列例外情形下不产生此信号,此时读操作返回出错, e r r n o设置为E I O:( a )读进程忽略或阻塞此信号,或 ( b )读进程所属的进程组是孤儿进程组。
- SIGTTOU 当一个后台进程组进程试图写其控制终端时产生此信号。与上面所述的 S I G T T I N信号不同,一个进程可以选择为允许后台进程写控制终端。第11章将讨论如何更改此选择项。
- SIGURG 此信号通知进程已经发生一个紧急情况。在网络连接上,接到非规定波特率的
数据时,此信号可选择地产生。