kill(终止进程) 指令
2024年10月31日大约 2 分钟
kill 指令
- kill 是一个用于终止进程的命令,通过进程 ID (PID) 来操作。它主要发送信号给指定进程,要求其执行某些操作,常用于终止或重新启动进程。
kill: kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 | 任务声明 ... 或 kill -l [信号声明]
向一个任务发送一个信号。
向以 PID 进程号或者 JOBSPEC 任务声明指定的进程发送一个以
SIGSPEC 信号声明或 SIGNUM 信号编号命名的信号。如果没有指定
SIGSPEC 或 SIGNUM,那么假定发送 SIGTERM 信号。
选项:
-s sig SIG 是信号名称
-n sig SIG 是信号编号
-l 列出信号名称;如果参数后跟 `-l'则被假设为信号编号,
而相应的信号名称会被列出
Kill 成为 shell 内建有两个理由:它允许使用任务编号而不是进程号,
并且在可以创建的进程数上限达到是允许进程被杀死。基本用法:结束指定 PID 的进程
kill PID
### 示例:结束进程号为 1234 的进程
```bash
kill 1234
## kill 命令支持多种信号
- 常用信号如下:
### 1. SIGHUP (1):挂起信号,通常用于通知进程重新加载配置
```bash
kill -SIGHUP 12342. SIGINT (2):中断信号,通常由 Ctrl+C 产生
kill -SIGINT 12343. SIGTERM (15):终止信号,默认信号,要求进程优雅地退出
kill -SIGTERM 12344. SIGKILL (9):强制终止信号,立即结束进程,无法被捕获或忽略
kill -SIGKILL 12345. SIGSTOP (19):停止信号,暂停进程的执行
kill -SIGSTOP 12346. SIGCONT:继续信号,恢复暂停的进程
kill -SIGCONT 1234使用信号编号代替信号名称
kill -9 1234 # 等同于 kill -SIGKILL 1234
kill -15 1234 # 等同于 kill -SIGTERM 1234批量终止多个进程
可以指定多个 PID,依次终止每个进程
kill 1234 5678 9101查看进程支持的所有信号
kill -l结合 pgrep 批量终止进程
示例:终止所有名称包含 "python" 的进程
kill -9 $(pgrep python)注意事项:
- 使用 SIGKILL 信号时需小心,因其会强制结束进程,可能导致数据丢失。
- 使用 SIGTERM 让进程有机会保存数据并优雅地退出。