命令功能
kill命令用于向进程发送指定的信号,默认发送SIGTERM(15)信号,用于终止进程。该命令通过进程ID(PID)来指定要操作的进程。
基本语法
kill [选项] [信号] 进程ID
常用信号
| 信号编号 | 信号名称 | 说明 |
|---|---|---|
| 1 | SIGHUP | 挂起信号,让进程重新读取配置文件 |
| 2 | SIGINT | 中断信号(Ctrl+C) |
| 3 | SIGQUIT | 退出信号(Ctrl+\) |
| 9 | SIGKILL | 强制终止进程,无法被捕获或忽略 |
| 15 | SIGTERM | 默认信号,正常终止进程 |
| 18 | SIGCONT | 继续执行已停止的进程 |
| 19 | SIGSTOP | 暂停进程(Ctrl+Z) |
选项说明
- -l, –list:列出所有信号名称
- -s, –signal:指定要发送的信号
- -a, –all:不限制进程名
- -p, –pid:只显示进程ID,不发送信号
- -q, –queue:使用实时信号
使用示例
1. 终止指定进程
# 终止进程ID为1234的进程
kill 1234
# 或使用信号编号
kill -15 1234
# 或使用信号名称
kill -SIGTERM 1234
2. 强制终止进程
# 强制终止进程ID为1234的进程
kill -9 1234
# 或使用信号名称
kill -SIGKILL 1234
3. 列出所有信号
# 列出所有信号名称
kill -l
4. 终止多个进程
# 同时终止多个进程
kill 1234 5678 9012
5. 让进程重新读取配置文件
# 发送SIGHUP信号,让进程重新加载配置
kill -1 1234
# 或
kill -HUP 1234
注意事项
- 只有进程的所有者或root用户才能终止进程
- SIGKILL(9)信号无法被进程捕获或忽略,会强制终止进程,可能导致数据丢失
- 建议先使用SIGTERM(15)信号正常终止进程,如果无效再使用SIGKILL
- 可以使用ps、top等命令查看进程ID
- 使用killall命令可以根据进程名终止进程
相关命令
- killall:根据进程名终止进程
- pkill:根据进程名或其他属性终止进程
- ps:查看进程状态
- top:实时显示进程状态
- pgrep:根据名称查找进程ID
实际应用场景
- 终止无响应的程序
- 重新加载服务配置
- 清理僵尸进程
- 系统维护时终止特定进程
- 批量管理进程