第 16 章 脚本控制¶
约 198 个字 17 行代码 1 张图片 预计阅读时间 1 分钟
信号、后台作业、nice/renice 与脚本自启。
16.1 信号¶
| 信号 | 默认 | 含义 |
|---|---|---|
| SIGINT (2) | 终止 | Ctrl+C |
| SIGQUIT (3) | 终止+core | Ctrl+\ |
| SIGKILL (9) | 终止 | 不可捕获 |
| SIGTERM (15) | 终止 | kill 默认 |
| SIGHUP (1) | 终止 | 终端断开 |
16.2 后台与作业控制¶
16.2.1 nohup 与 disown¶
Bash
nohup long_cmd > out.log 2>&1 & # SSH 断开仍运行
disown -h %1 # 从 jobs 表移除,SIGHUP 不杀
setsid cmd # 新会话运行
16.3 优先级¶
16.4 脚本自动化运行¶
- cron:
crontab -e
- at:一次性定时
- systemd timer:现代替代 cron 的方式
crontab 示例:
Text Only
PATH=/usr/local/bin:/usr/bin
0 2 * * * /opt/scripts/backup.sh >> /var/log/backup.log 2>&1
*/5 * * * * curl -sf http://localhost/health || mail -s alert admin@host