行者孙Python

运维篇-Day23|劝退收工:Windows 结束任务 → kill 结束进程(含 kill -9)

📖 知识点

1. Windows 结束任务 → Linux kill

 

 

WindowsLinux说明
任务管理器→结束任务

kill PID

结束指定进程
强制结束

kill -9 PID

强杀进程

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 PID

温和,给进程 "收拾一下再退出"正常退出,首选

kill -9 PID

强制,直接终止,来不及保存进程卡死、kill 不管用时

顺序建议:先 kill PID,不管用再 kill -9 PID。强杀可能丢数据,慎用。

4. 验证进程已结束

 

ps aux | grep python    # 再查,应该没有了(或只剩grep自己)

 

⚠️ 易错提醒

  1. kill 后面跟的是PID(数字),不是进程名;PID 从 ps 里查

  2. 结束别人的进程(root 的)可能需要 sudo

  3. 别乱 kill 系统关键进程(如 PID 1),可能导致系统异常

⚔️ Kata 实战任务

任务需求:

  1. 先 ps aux | grep bash 找到当前 bash 进程的 PID

  2. 记住那个 PID,用 kill 结束一个无害的测试进程(或演示用 kill 结束自己开的 sleep)

  3. 用 sleep 100 & 开一个后台进程当 "靶子"

  4. 查它的 PID,用 kill 结束它,再 ps 验证已不在

  5. 体会 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
(没有结果,说明进程已结束)

 

🧠 思考题

  1. kill PID 和 kill -9 PID 有什么区别?为什么说 -9 是 "最后手段"、可能丢数据?

  2. 想结束一个进程,正确的步骤是什么?PID 从哪里查?为什么不能直接写进程名?

‹ 返回目录
🏠首页 Python 📦资源 👤关于我