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。常用命令有:
既有较为详细的PHP与MySQL基础知识介绍,也有大量针对不同应用的技术说明,并伴随了大量小而精的示例来加深读者的理解,便于通过实验来掌握知识并学会应用。令书以PHP开发者为核心,从环境搭建到系统开发,从局部技术点到项目全程把握,立体式介绍了PHP5+MySQL的技术要点以及丰富的延伸知识,可以让读者享受到提升开发能力的极速体验。
- ps aux | grep 进程名:查看包含关键词的进程。
- pgrep 进程名:直接返回匹配进程的 PID。
- pidof 程序名:根据程序名获取 PID,适用于服务类进程。
例如:
pgrep firefoxpidof 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,避免数据丢失或状态异常。









