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 PID | SIGTERM (15) | 礼貌请求退出(程序可以拒绝) | 敲门说”请开门” |
kill -9 PID | SIGKILL (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 更安全
组合
节点版本:v1.0 · 2026-04-20 下一个节点建议:shell-script 或 systemctl