📖 知识点
1. Windows 结束任务 → Linux kill
| Windows | Linux | 说明 |
|---|---|---|
| 任务管理器→结束任务 |
| 结束指定进程 |
| 强制结束 |
| 强杀进程 |
kill 按进程编号(PID)来结束进程。先
ps查到进程的 PID,再kill PID把它结束。
💡 生活比喻
kill像 "劝退员工":先好好说(kill PID温和地请它收工),不听就请保安(kill -9强行动手)。-9是最后的手段。
2. 基本用法
kill 1234 # 温和结束PID为1234的进程(请它正常退出)
kill -9 1234 # 强杀PID为1234(不商量,直接终止)
步骤:先 ps 查 PID,再 kill:
ps aux | grep python # 先找到python进程的PID(第二列)
kill 5678 # 结束它
3. kill 和 kill -9 的区别
| 命令 | 行为 | 适用 |
|---|---|---|
| 温和,给进程 "收拾一下再退出" | 正常退出,首选 |
| 强制,直接终止,来不及保存 | 进程卡死、kill 不管用时 |
顺序建议:先
kill PID,不管用再kill -9 PID。强杀可能丢数据,慎用。
4. 验证进程已结束
ps aux | grep python # 再查,应该没有了(或只剩grep自己)
⚠️ 易错提醒
kill后面跟的是PID(数字),不是进程名;PID 从ps里查结束别人的进程(root 的)可能需要
sudo别乱 kill 系统关键进程(如 PID 1),可能导致系统异常
⚔️ Kata 实战任务
任务需求:
先
ps aux | grep bash找到当前 bash 进程的 PID记住那个 PID,用
kill结束一个无害的测试进程(或演示用 kill 结束自己开的 sleep)用
sleep 100 &开一个后台进程当 "靶子"查它的 PID,用
kill结束它,再ps验证已不在体会 kill 温和结束 和 kill -9 强杀的区别
参考代码(在终端依次敲)
# 1. 开一个"靶子"进程:后台睡100秒
sleep 100 &
echo "已开启后台sleep进程"
# 2. 找到它的PID
ps aux | grep sleep
# 3. 温和结束它(把PID换成实际查到的数字)
kill 12345
# 4. 验证进程还在不在
ps aux | grep sleep
(若想演示 kill -9,把第 3 步换成 kill -9 PID,观察同样能结束)
运行示例:
user@linux:~$ sleep 100 &
[1] 12345
user@linux:~$ ps aux | grep sleep
user 12345 0.0 0.1 10000 8000 pts/0 S 10:30 0:00 sleep 100
user@linux:~$ kill 12345
user@linux:~$ ps aux | grep sleep
(没有结果,说明进程已结束)
🧠 思考题
kill PID和kill -9 PID有什么区别?为什么说-9是 "最后手段"、可能丢数据?想结束一个进程,正确的步骤是什么?PID 从哪里查?为什么不能直接写进程名?