Linux 中的 kill
命令用于向进程发送信号,最常用于终止进程。它不仅能“杀死”进程,还能暂停、继续或自定义控制进程行为。
下面是对 kill
命令的详细解析,包括语法、常用信号、参数说明和使用示例:
🧠 基本语法
kill [选项] <PID>
PID
是进程的 ID,可通过ps
,top
,pidof
等命令获取。- 如果不指定信号,默认发送
SIGTERM
(信号编号 15)。
🚦 常用信号类型
信号名称 | 编号 | 作用说明 |
---|---|---|
SIGTERM |
15 | 请求进程正常终止(可被捕获或忽略) |
SIGKILL |
9 | 强制终止进程(不可捕获或忽略) |
SIGSTOP |
19 | 暂停进程(不可捕获或忽略) |
SIGCONT |
18 | 继续执行被暂停的进程 |
SIGINT |
2 | 中断进程,通常由 Ctrl+C 触发 |
使用 kill -l
可列出所有信号名称。
⚙️ 常用选项说明
-l
:列出所有信号名称。-s SIGNAL
:发送指定信号,例如kill -s SIGKILL 1234
。-<signal>
:直接使用信号编号,如kill -9 1234
。-p
:仅显示进程号,不发送信号。-u 用户名
:向指定用户的所有进程发送信号。
📌 使用示例
# 终止进程(默认发送 SIGTERM)
kill 1234
# 强制终止进程(发送 SIGKILL)
kill -9 1234
# 暂停进程
kill -s SIGSTOP 1234
# 继续执行暂停的进程
kill -s SIGCONT 1234
# 显示所有信号名称
kill -l
🛠️ 实用技巧
- 若进程无法被
SIGTERM
终止,可尝试使用SIGKILL
。 - 可结合
ps aux | grep <进程名>
查找 PID。 - 对于后台任务,也可使用
jobs
和%<job号>
与kill
配合使用(如kill %1
)