脚本控制全解析:信号处理与后台运行技巧
在构建高级脚本时,你可能会思考如何在 Linux 系统上运行和控制这些脚本。除了从命令行界面实时运行脚本外,还有多种方式来执行和控制脚本,下面我们就来详细探讨这些方法。
1. 信号处理
Linux 系统使用信号与运行中的进程进行通信,了解这些信号并学会处理它们,能让你更好地控制脚本的运行。
1.1 常见 Linux 信号
Linux 系统和应用程序可以生成超过 30 种信号,以下是一些常见的信号及其描述:
| 信号 | 值 | 描述 |
| ---- | ---- | ---- |
| SIGHUP | 1 | 挂起进程 |
| SIGINT | 2 | 中断进程 |
| SIGQUIT | 3 | 停止进程 |
| SIGKILL | 9 | 无条件终止进程 |
| SIGTERM | 15 | 尽可能终止进程 |
| SIGCONT | 18 | 继续已停止的进程 |
| SIGSTOP | 19 | 无条件停止但不终止进程 |
| SIGTSTP | 20 | 停止或暂停进程,但不终止 |
Bash shell 默认会忽略 SIGQUIT(3)和 SIGTERM(15)信号,以防止交互式 shell 意外终止。但对于 SIGHUP(1)和 SIGINT(2)信号,shell 会做出响应。当收到 SIGHUP 信号时,shell 会退出,并将该信号传递给由它启动的所有进程;收到 SIGINT 信号时,shell 会被中断,同时将该信号传递给子进程。
超级会员免费看
订阅专栏 解锁全文
117

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



