kill · 结束进程

上游:ps(先用 ps 找到进程的 PID,再 kill) 下游:systemctl(服务进程有更优雅的重启方式) 参见:ps(kill 和 ps 是黄金搭档)


一句话是什么

kill 向进程发送信号,最常用的效果是结束一个卡死或不需要的程序—— 就像告诉一个不听话的程序:“该停了。“


为什么需要它

程序有时候会卡死——界面不动了,终端没有响应,Ctrl+C 也没用。 这时候你需要从外部”踢掉”它:

# 第一步:找到卡死程序的 PID
ps aux | grep bedrock_server
# aaron  5678  99.9  1.2  ...  ./bedrock_server
 
# 第二步:结束它
kill 5678

核心用法

公式

kill [信号] PID

两个最重要的信号

命令信号含义类比
kill PIDSIGTERM (15)礼貌请求退出(程序可以拒绝)敲门说”请开门”
kill -9 PIDSIGKILL (9)强制立刻终止(无法拒绝)直接踹门

原则:先用普通 kill,程序不响应再用 -9。

常用命令表

操作命令说明
礼貌结束kill PID给程序收尾的机会
强制终止kill -9 PID立刻杀死,不保存状态
按名字终止killall bedrock_server不用找 PID,直接按名字
按名字强制killall -9 bedrock_server强制按名字终止
查看所有信号kill -l列出所有信号编号

Linux 笑话

Aaron 第一次用 kill -9,以为删掉了什么重要的东西, 紧张地问爸爸:“我是不是把服务器的数据删了?”

爸爸:“没有,kill 只是结束了程序,就像关掉一个窗口。 存档文件还在 ~/mc-server/worlds/ 里。”

Aaron 松了口气,然后重新启动了服务器。

存档完好无损。

kill 结束的是进程(运行中的程序),不是文件。 文件在硬盘上,进程在内存里,两件事。


例题精讲

📗 初探 Starter — 找到并结束一个进程

# 第一步:打开一个可以被 kill 的程序(sleep 命令,等待 999 秒)
sleep 999 &
# [1] 12345  ← 这个数字是 PID
 
# 第二步:用 ps 确认它在运行
ps aux | grep sleep
# aaron  12345  0.0  0.0  ...  sleep 999
 
# 第三步:礼貌地结束它
kill 12345
 
# 第四步:确认它没了
ps aux | grep sleep
# (没有输出)

📘 应用 User — 重启卡死的 Minecraft 服务器

# 服务器卡死,终端没响应,Ctrl+C 无效
 
# 第一步:另开一个终端,找到 PID
ps aux | grep bedrock_server
# aaron  5678  99.9  ...  ./bedrock_server
 
# 第二步:先试礼貌方式
kill 5678
# 等 5 秒
 
# 第三步:如果还在,强制终止
kill -9 5678
 
# 第四步:确认进程消失
ps aux | grep bedrock_server
# (没有输出)
 
# 第五步:重新启动
cd ~/mc-server && ./bedrock_server

📙 管理 Admin — 用 killall 批量处理

# 如果同时开了多个 bedrock_server 实例(不小心开了两次)
ps aux | grep bedrock_server
# aaron  5678  ...  ./bedrock_server
# aaron  5679  ...  ./bedrock_server
 
# 用 killall 一次全部结束(按名字)
killall bedrock_server
 
# 确认
ps aux | grep bedrock_server
# (没有输出)
 
# 查看所有可用信号编号(了解即可)
kill -l

官方文档参考

man kill         # 完整手册
kill -l          # 列出所有信号

kill 发送信号(signal)给进程;默认信号是 SIGTERM(15),-9 是 SIGKILL,无法被捕获或忽略。 在线:https://manpages.ubuntu.com/kill


节点链接

上游(先用 ps 找 PID)

  • ps ← ps aux | grep 找到 PID,再 kill

下游(更优雅的进程管理)

  • systemctl ← 服务进程用 systemctl stop/restart,比 kill 更安全

组合

  • ps ← kill 的黄金搭档
  • 管道 ← ps aux | grep 找进程

节点版本:v1.0 · 2026-04-20 下一个节点建议:shell-scriptsystemctl