银河麒麟上清理同名卡死进程需分四步:先用pgrep -lf精准定位pid;再用pkill -i等安全终止;残留则用kill -9强制终结;最后用kill -- -pgid灭族子进程。

先精准定位要杀的进程
你在银河麒麟上遇到多个同名程序卡死、CPU飙高或图形界面反复弹窗,必须一次性清理掉所有相关进程,否则系统响应持续迟缓。直接开杀会误毁桌面服务,第一步永远是确认目标。
打开终端(Ctrl+Alt+T),执行:
pgrep -lf "wps"
这会列出所有含“wps”字样的进程PID及完整命令行,比如12345 /usr/bin/wps --nofork。若返回空行,说明当前没有匹配进程,立刻停止后续操作。
【关键提醒】不要用 ps aux | grep wps 替代 pgrep -lf:grep 自身会混入结果,且不加 -i 时大小写不匹配(如 WPS 不会被捕获)
用 pkill 按名称安全批量终结
pkill 是银河麒麟批量杀进程最稳的选择——它默认发 SIGTERM(-15),给程序留出保存、释放资源的时间,比硬刚更可靠。
方法一:基础名称匹配
pkill wps
方法二:忽略大小写(适配启动图标名不一致场景)
pkill -i chrome
方法三:限定用户范围防误伤
pkill -u $USER -f "python3.*data_clean.py"
执行后等待2秒,再运行 ps -p 12345 验证是否退出;若有残留,说明进程已僵死,进入下一步。
强制终结顽固进程组
当 pkill 后仍有进程存活,通常是它屏蔽了信号、陷入内核不可中断状态(D状态),或被文件锁/挂载点卡住。此时必须升级为 kill -9,但仅限已确认的 PID 列表。
第一步:提取全部目标PID并存入变量
PIDS=$(pgrep -f "gunicorn.*8001")
第二步:对每个PID发送 SIGKILL
for pid in $PIDS; do kill -9 $pid; done
第三步:立即验证是否清空
ps -p $PIDS 2>/dev/null | grep -q "." && echo "仍有存活" || echo "全部清除"
这一步操作不可逆:未保存的编辑内容、数据库连接、临时锁文件将永久丢失。
用 killall 快速终止标准服务进程
killall 适合杀 nginx、redis-server 这类安装包自带、进程名严格固定的系统服务,它只匹配 /proc/[pid]/comm 中的短名称,不碰参数,安全性高。
执行:
killall -v nginx
加 -v 参数会逐行输出匹配到的 PID 和进程名,例如:
nginx(12345) killed
若需静默执行(如写入脚本),改用:
killall -q redis-server
【注意】killall 不支持通配符:killall nginx* 会报错“No such process”,必须写全名
终极清理:连子进程一起干掉
某些主进程(如 Electron 应用、Java 启动器)会派生大量子进程,仅杀主进程 PID 会导致子进程变孤儿、继续占资源。这时要用 pstree 定位树结构,再用 kill -- -PGID 强制灭族。
第一步:查主进程 PID 及其进程组 ID(PGID)
ps -o pid,pgid,comm -C "qq" | head -2
第二步:向整个进程组发 SIGKILL(注意 PGID 前的负号)
kill -- -12345
第三步:验证子进程是否消失
pgrep -P 12345











