深入理解信号处理:原理、应用与实践
1. 信号概述
信号是软件中断,能因多种原因产生。比如,在熟模式下按下 Control - C 通常会在前台进程中生成中断信号;进程可以向其他进程甚至自身发送信号;操作系统也会因某些原因(如即将停电、系统即将停止)生成信号。
信号的表示方式多样,例如信号编号 9 在 C 程序中通常写为 SIGKILL ,而很多实用工具(如 kill )只接受 9 或 KILL (不带 SIG 前缀), Expect 则三种形式都接受。
现代系统中常见的信号如下表所示:
| 信号名称 | 描述 |
| ---- | ---- |
| SIGHUP | 挂起 |
| SIGINT | 中断 |
| SIGQUIT | 退出 |
| SIGKILL | 终止 |
| SIGPIPE | 管道写入失败 |
| SIGTERM | 软件终止 |
| SIGSTOP | 停止(实际为“暂停”) |
| SIGTSTP | 键盘停止 |
| SIGCONT | 继续 |
| SIGCHLD | 子进程终止 |
| SIGWINCH | 窗口大小改变 |
| SIGUSR1 | 用户自定义 |
| SIGUSR2 | 用户自定义 |
2. 信号的生成与处理
假设具备相应权限,可以通过 shell 脚本中的 <
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



