kill 用于向进程发送信号,最常用的是终止进程。
kill 向指定 PID 的进程发送信号。虽然名为 "kill",但它可以发送任何信号。默认发送 SIGTERM(信号 15),该信号允许进程优雅退出。如果进程不响应,可以使用 SIGKILL(信号 9)强制终止。
示例 1:优雅终止进程
kill 12345
示例 2:强制终止进程
kill -9 12345
或
kill -KILL 12345
示例 3:发送 SIGHUP 让进程重新加载配置
kill -HUP 5678
示例 4:终止进程组
kill -TERM -1234
示例 5:查看可用信号
kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
...
示例 6:批量杀死匹配进程
pkill -f "python.*script"
| 编号 | 名称 | 说明 |
|---|---|---|
| 1 | SIGHUP | 挂断(常用来重载配置) |
| 2 | SIGINT | 中断(Ctrl+C) |
| 3 | SIGQUIT | 退出并生成 core dump |
| 9 | SIGKILL | 强制终止(不能被捕获) |
| 15 | SIGTERM | 优雅终止(默认信号) |
| 17 | SIGCHLD | 子进程状态改变 |
| 18 | SIGCONT | 继续执行 |
| 19 | SIGSTOP | 停止(不能被捕获) |
| 20 | SIGTSTP | 暂停(Ctrl+Z) |
| 参数 | 长参数 | 说明 |
|---|---|---|
-s SIGNAL |
--signal SIGNAL |
指定信号名称 |
-SIGNAL |
直接指定信号编号或名称 | |
-l |
--list |
列出信号名称 |
-p |
--pid |
只打印 PID,不发送信号 |
-q |
--queue |
使用 sigqueue 发送信号 |
--timeout |
等待进程响应超时 |