终端前台程序:Ctrl + C
(最常用)
- 适用场景:程序在终端前台运行(如
python script.py
或tail -f logfile
)。 - 操作:
直接按Ctrl + C
组合键,发送SIGINT
信号,程序会优雅终止(允许保存数据)。 - 注意:若程序未响应,可能需要更强力的方法。
通过进程ID停止:kill
命令
- 适用场景:已知程序的进程ID(PID)。
- 步骤:
- 查找PID:
ps aux | grep "程序名" # ps aux | grep firefox
- 发送终止信号:
kill PID # 默认发送SIGTERM(15),允许程序清理资源 kill -15 PID # 同上,推荐首选 kill -9 PID # 强制终止(SIGKILL),仅当程序无视SIGTERM时使用
- 查找PID:
- 关键区别:
SIGTERM
(15):请求终止,程序可执行收尾工作。SIGKILL
(9):立即强制杀死,可能导致数据损坏(慎用)。
通过进程名停止:killall
命令
- 适用场景:需停止所有同名进程(如结束多个
chrome
进程)。 - 操作:
killall 程序名 # 默认发送SIGTERM killall -9 程序名 # 发送SIGKILL强制终止 killall -u 用户名 程序名 # 停止指定用户的进程
- 示例:
killall firefox # 终止所有Firefox进程
高级进程查找停止:pkill
命令
- 适用场景:需根据进程名、用户或其他属性灵活终止。
- 操作:
pkill "进程名" # 默认发送SIGTERM pkill -9 "进程名" # 强制终止 pkill -u 用户名 "进程名" # 停止对应用户的进程
- 优势:支持正则表达式匹配进程名,更灵活。
系统服务管理:systemctl
(推荐用于服务)
- 适用场景:停止系统服务(如 Nginx、MySQL 等)。
- 操作:
sudo systemctl stop 服务名 # 停止服务 sudo systemctl restart 服务名 # 重启服务
- 示例:
sudo systemctl stop apache2 # 停止Apache服务
图形界面程序:xkill
(针对无响应窗口)
- 适用场景:GUI程序卡死,无法通过常规方式关闭。
- 操作:
- 打开终端,输入:
xkill
- 鼠标指针变为骷髅图标,点击目标窗口即可强制终止。
- 打开终端,输入:
- 注意:需图形环境支持(如 GNOME/KDE)。
资源监视器终止:top
/ htop
- 适用场景:动态查看并终止高资源占用的进程。
- 操作:
- 运行
top
或htop
(安装命令:sudo apt install htop
)。 - 按
k
键,输入目标PID。 - 选择信号(默认15,输入
9
强制终止)。
- 运行
后台作业终止:jobs
与 fg
/bg
- 适用场景:停止通过
&
或Ctrl+Z
放入后台的作业。 - 操作:
- 查看后台作业:
jobs -l # 显示作业号(如 [1])
- 终止作业:
kill %作业号 # kill %1
- 查看后台作业:
⚠️ 关键注意事项
- 信号优先级:
- 优先使用
SIGTERM
(kill PID
),给予程序清理资源的机会。 SIGKILL
(kill -9
)是最后手段,可能破坏数据或产生僵尸进程。
- 优先使用
- 权限要求:
- 停止其他用户或系统进程需
sudo
权限。
- 停止其他用户或系统进程需
- 数据安全:
数据库或写入密集型程序,应先尝试正常关闭(如内置命令)再终止。
场景 | 推荐命令 |
---|---|
终端前台程序 | Ctrl + C |
已知PID | kill PID |
批量终止同名进程 | killall 程序名 |
灵活匹配进程 | pkill 选项 程序名 |
系统服务 | systemctl stop |
图形界面卡死 | xkill |
动态监视终止 | top 或 htop |
后台作业 | kill %作业号 |
始终优先选择允许程序优雅退出的方法,强制终止是最后的备用方案,掌握这些技巧,可有效提升Linux系统管理的安全性与效率。
引用说明: 参考Linux man手册(man kill
、man pkill
、man systemctl
)及GNU Coreutils官方文档,确保信息的专业性与准确性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8852.html