kill 命令本质是发送信号而非删除进程,默认发 sigterm(15)允许进程优雅退出,仅当无响应时才用 sigkill(9)强制终止;需先通过 pidof、pgrep、ps、top 等获取 pid,再用 kill 发送对应信号,支持单个或批量操作,并有 pkill、killall 等替代命令。

直接用 kill 终止进程,核心是“发信号”,不是“删进程”。它默认发 SIGTERM(15号),让进程有机会保存数据、释放资源后退出;只有不响应时,才用 SIGKILL(9号) 强制结束。
先查到目标进程的 PID
没 PID 就没法 kill。常用方法:
-
pidof 程序名:比如
pidof firefox,返回所有匹配进程的 PID -
pgrep 程序名:更灵活,支持模糊匹配和用户筛选,如
pgrep -u alice python - ps aux | grep 关键词:适合确认进程完整命令行,避免误杀
-
top 或 htop:交互式查看,按
P排序 CPU,M排序内存,找到后记下 PID
用 kill 发送终止信号
语法简单,但信号选择很关键:
-
kill 1234:向 PID 1234 发 SIGTERM(15),推荐首选 -
kill -9 1234或kill -KILL 1234:强制终止,进程无法拦截,慎用 -
kill -15 1234和kill -TERM 1234效果同默认写法,显式写出便于理解 -
kill -l:列出所有信号编号和名称,查编号或名称都可用,比如kill -l 9显示KILL,kill -l KILL显示9
批量终止与安全操作习惯
单个 kill 很快,但批量和防误操作更重要:
- 一次 kill 多个 PID:
kill 1234 5678 9012 - 终止当前 shell 启动的所有后台作业:
kill 0(注意:只影响本 shell 的子进程) - 普通用户只能 kill 自己的进程;root 可 kill 任意进程,但切勿随意 kill 系统关键进程(如 systemd、kthreadd、dbus)
- 执行前建议用
ps -p 1234 -o pid,comm,args再确认一次进程归属和用途
替代命令:按名字而不是 PID 杀
如果不想找 PID,可直接按进程名操作:
-
pkill firefox:匹配命令名或完整命令行,支持正则和用户限制(pkill -u alice) -
killall firefox:严格匹配可执行文件名,更干净,加-i可交互确认 - 图形界面卡死时,终端运行
xkill,鼠标变十字后点窗口即可——本质也是发 SIGKILL,但免查 PID











