kill命令通过发送信号控制进程,优先用SIGTERM(15)终止进程,必要时用SIGKILL(9)强制结束,结合ps、pgrep、pidof查找PID,配合killall和pkill按名或条件终止进程。
在Linux系统中,kill 命令用于向进程发送信号,最常见的是终止某个正在运行的进程。虽然名字叫“kill”,但它并不直接杀死进程,而是通过发送信号来控制进程行为。掌握 kill 命令对系统管理和故障排查非常关键。
理解信号(Signals)
kill 命令的核心是信号。每个信号都有编号和名称,代表不同的操作:
- SIGTERM (15):请求进程正常退出,允许其释放资源、保存数据。
- SIGKILL (9):强制终止进程,无法被忽略或捕获。
- SIGSTOP (19):暂停进程执行。
- SIGCONT (18):恢复被暂停的进程。
默认情况下,kill 发送的是 SIGTERM 信号。
基本语法与使用方法
kill 命令的基本格式为:
kill [选项] [信号] PID
其中 PID 是进程的唯一标识号。常用用法包括:
- kill 1234:向 PID 为 1234 的进程发送 SIGTERM。
- kill -9 1234:强制终止该进程(使用 SIGKILL)。
- kill -15 1234:等同于 kill 1234。
- kill -l:列出所有支持的信号名称。
如何查找目标进程的PID
使用 kill 前需要知道目标进程的 PID。常用命令有:
- ps aux | grep 进程名:查看包含关键词的进程。
- pgrep 进程名:直接返回匹配进程的 PID。
- pidof 程序名:根据程序名获取 PID,适用于服务类进程。
例如:
pgrep firefox
pidof nginx
实用示例场景
以下是几个常见的实际应用:
- 优雅关闭Web服务:
kill $(pidof nginx) # 发送 SIGTERM,让Nginx安全退出 - 强制结束无响应程序:
kill -9 $(pgrep chrome) # 强制关闭Chrome浏览器 - 重启一个守护进程:
kill -HUP $(pidof mysqld) # HUP信号常用于重新加载配置 - 批量终止同类进程:
killall httpd # 终止所有名为httpd的进程
kill、killall 和 pkill 的区别
- kill:基于 PID 操作,最基础。
- killall:按进程名终止所有匹配的进程。
- pkill:支持按名称、用户、终端等多种条件筛选并发送信号。
例如:
pkill -u alice # 终止用户 alice 的所有进程
pkill -f “python script.py” # 根据完整命令行匹配进程
基本上就这些。合理使用 kill 及其相关命令,能有效管理Linux系统的运行进程。注意优先使用 SIGTERM,仅在必要时才使用 SIGKILL,避免数据丢失或状态异常。
以上就是Linux kill命令详解与实用示例的详细内容,更多请关注php中文网其它相关文章!


