基础方法:终端快捷键
-
Ctrl + C
- 作用:强制终止当前终端中正在前台运行的程序(发送
SIGINT
信号)。 - 场景:命令行程序卡顿时直接使用。
- 示例:
$ python3 long_script.py # 运行中按 Ctrl+C 立即停止
- 作用:强制终止当前终端中正在前台运行的程序(发送
-
Ctrl + Z +
kill
组合- 步骤:
- 按
Ctrl + Z
挂起程序(发送SIGTSTP
信号),程序转入后台暂停。 - 输入
jobs
查看挂起任务的编号(如[1]
)。 - 终止任务:
kill %1 # 终止编号为1的后台任务(发送 SIGTERM 信号) kill -9 %1 # 强制终止(发送 SIGKILL 信号,慎用)
- 按
- 步骤:
通过进程ID(PID)终止
-
查找进程PID
- 使用
ps
或pgrep
:ps aux | grep "程序名" # ps aux | grep firefox pgrep -f "程序名" # 直接输出PID(如 pgrep -f nginx)
- 使用
-
使用
kill
命令- 语法:
kill [信号] PID
kill 1234 # 默认发送 SIGTERM(允许程序清理资源后退出) kill -9 1234 # 发送 SIGKILL(强制立即终止,可能丢失数据)
- 信号说明:
SIGTERM
(15):安全终止(推荐首选)。SIGKILL
(9):强制杀死(仅当程序不响应时使用)。
- 语法:
通过进程名批量终止
-
killall
命令- 终止所有同名进程:
killall "程序名" # killall chrome killall -9 "程序名" # 强制终止
- 终止所有同名进程:
-
pkill
命令- 支持正则表达式匹配进程名:
pkill "firefox" # 终止所有含"firefox"的进程 pkill -f "python.*script" # 匹配完整命令
- 支持正则表达式匹配进程名:
图形界面工具
- 系统监视器(System Monitor):
- 打开应用(Ubuntu:
gnome-system-monitor
,KDE:ksysguard
)。 - 在“进程”选项卡中找到目标程序。
- 右键 → 结束进程 或 强制结束。
- 打开应用(Ubuntu:
特殊场景处理
-
终止后台守护进程(如 nginx/mysql)
- 使用服务的控制命令:
sudo systemctl stop nginx # Systemd系统 sudo service mysql stop # SysVinit系统
- 使用服务的控制命令:
-
终止所有用户进程
- 使用
pkill
指定用户:pkill -u username # 终止用户"username"的所有进程
- 使用
安全操作建议
- 优先级原则:
- 先尝试
Ctrl + C
→ 再kill PID
→kill -9
。
- 先尝试
- 数据风险:
SIGKILL
(-9)可能造成数据损坏,仅用于无响应进程。
- 权限控制:
- 普通用户只能终止自己的进程,系统进程需
sudo
提权。
- 普通用户只能终止自己的进程,系统进程需
- 确认进程状态:
- 终止后检查是否成功:
ps -p 1234 # 查看PID为1234的进程是否存在
- 终止后检查是否成功:
引用说明:
- Linux 信号机制参考:
man 7 signal
kill
/killall
/pkill
完整文档:man kill
,man killall
,man pkill
- Systemd 服务管理:
man systemctl
- 进程查询工具:
man ps
,man pgrep
遵循 Linux 标准协议,操作建议基于 Ubuntu/CentOS 等主流发行版验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6314.html