killall 和 kill 是 Linux 中用于终止进程的命令,但它们的工作方式有所不同。
1. kill 命令
功能:kill 用于向指定进程发送信号,默认发送 SIGTERM(终止信号)。
用法:kill [选项] <PID>
参数:
<PID>:进程 ID,指定要终止的进程。
-<信号>:可以指定发送的信号类型,例如 -9 表示 SIGKILL(强制终止)。
示例:
kill 1234 # 终止 PID 为 1234 的进程
kill -9 1234 # 强制终止 PID 为 1234 的进程
2. killall
命令
-
功能:
killall
通过进程名称终止所有匹配的进程。 -
用法:
killall [选项] <进程名>
-
参数:
-
<进程名>
:要终止的进程名称。 -
-<信号>
:可以指定发送的信号类型,例如-9
表示SIGKILL
。
-
-
示例:
-
killall nginx # 终止所有名为 nginx 的进程 killall -9 nginx # 强制终止所有名为 nginx 的进程
killall nginx # 终止所有名为 nginx 的进程 killall -9 nginx # 强制终止所有名为 nginx 的进程
主要区别
特性 | kill | killall |
---|---|---|
操作对象 | 通过 PID 终止单个进程 | 通过进程名称终止所有匹配的进程 |
灵活性 | 需要知道进程的 PID | 只需知道进程名称 |
批量操作 | 不支持批量终止 | 支持批量终止同名进程 |
信号指定 | 支持指定信号 | 支持指定信号 |
总结
-
使用
kill
时需要知道进程的 PID,适合精确控制单个进程。 -
使用
killall
时只需知道进程名称,适合批量终止同名进程。