基础方法:终端快捷键
-
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 [信号] PIDkill 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 signalkill/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