如何查看和终止正在运行的Python进程
无论是在开发过程中测试脚本,还是在生产环境中运行数据分析任务,了解如何查看和控制正在运行的Python进程对于维护系统状态和资源利用率至关重要。本文将介绍在两个主要操作平台(Unix/Linux/macOS和Windows)上执行这些任务的方法。
在Unix/Linux/macOS上
查看Python进程
打开你的终端应用程序。
输入以下命令并执行:
ps -ef | grep python
这将列出所有当前运行的以“python”名字开始的进程。请注意输出中的PID(进程ID)列,这是您稍后可能需要用来终止进程的关键标识。
杀死Python进程
确定您想要终止的进程的PID。
使用以下命令来尝试优雅地终止进程:
kill [PID]
如果进程没有响应,您可以使用以下命令强制终止它:
kill -9 [PID]
在Windows上
查看Python进程
打开命令提示符(CMD)或PowerShell。
执行以下命令:
cmd
tasklist | findstr python
该命令会列出所有当前运行的以“python”为名的进程,包括它们的PID。
杀死Python进程
找到您想要终止的进程的PID。
使用以下命令来强制终止进程:
cmd
taskkill /F /PID [PID]
重要提示
在终止任何进程之前,请确保您了解该进程的功能及其可能的副作用。强制终止进程可能会导致数据丢失或其他不稳定的系统状态。
例子
(base) root@3fb2ffb4b3cf:~# ps -ef | grep python
运行完发现三个python进程
root 1589 8458 0 03:40 pts/0 00:00:00 grep --color=auto python
root 14461 14226 2 00:46 ? 00:04:10 /root/.vscode-server/bin/1a5daa3a0231a0fbba4f14db7ec463cf99d7768e/node /root/.vscode-server/extensions/ms-python.vscode-pylance-2024.3.2/dist/server.bundle.js --cancellationReceive=file:c58b388857dca1f523ca119ac78d6619217c3b18bf --node-ipc --clientProcessId=14226
root 32299 1 99 Jun26 ? 2-01:11:52 /opt/conda/envs/kan-tts/bin/python -u /tmp/KAN-TTS-main/kantts/bin/train_hifigan.py --local_rank=0 --model_config /tmp/KAN-TTS-main/kantts/configs/hifigan_v1_24k.yaml --root_dir /tmp/KAN-TTS-main/outfea --stage_dir /tmp/KAN-TTS-main/trainout
找到需要杀死的进程
root 32299 1 99 Jun26 ? 2-01:11:52 /opt/conda/envs/kan-tts/bin/python -u /tmp/KAN-TTS-main/kantts/bin/train_hifigan.py --local_rank=0 --model_config /tmp/KAN-TTS-main/kantts/configs/hifigan_v1_24k.yaml --root_dir /tmp/KAN-TTS-main/outfea --stage_dir /tmp/KAN-TTS-main/trainout
执行
(base) root@3fb2ffb4b3cf:~# kill 32299
完成后在测试
(base) root@3fb2ffb4b3cf:~# ps -ef | grep python
root 2693 8458 0 03:42 pts/0 00:00:00 grep --color=auto python
root 14461 14226 2 00:46 ? 00:04:10 /root/.vscode-server/bin/1a5daa3a0231a0fbba4f14db7ec463cf99d7768e/node /root/.vscode-server/extensions/ms-python.vscode-pylance-2024.3.2/dist/server.bundle.js --cancellationReceive=file:c58b388857dca1f523ca119ac78d6619217c3b18bf --node-ipc --clientProcessId=14226
成功杀死不需要的占用资源的进程。