UNIX/Linux 信号与进程控制详解
1. 信号概述
在 UNIX/Linux 系统中,信号是一种重要的机制,用于在命令或脚本执行期间传递特定事件的通知。就像在纽约交通信号灯有不同的颜色和含义一样,UNIX/Linux 中的信号也有多种类型,且每种信号都有其独特的作用。
信号是发送给命令或脚本的中断,表明发生了需要关注的事情。不同的 UNIX/Linux 变体可能有略微不同的信号集,但基本功能是相似的。常见的信号如下表所示:
| 名称 | 值 | 描述 |
| ---- | ---- | ---- |
| SIGHUP | 1 | 检测到控制终端挂断或控制进程死亡 |
| SIGINT | 2 | 来自键盘的中断(Ctrl+C) |
| SIGQUIT | 3 | 来自键盘的退出信号(Ctrl+\) |
| SIGKIL | 9 | 终止信号 |
| SIGTERM | 15 | 终止信号 |
可以使用 kill -l
命令列出系统可用的信号。例如,在 Linux 中执行该命令会得到以下输出:
$ kill -l
1 HUP Hangup 33 33 Signal 33
2 INT Interrupt 34 34 Signal 34
3 QUIT Quit 35 35 Signal 35
4 ILL Illegal ins