【发布时间】:2020-06-29 23:27:35
【问题描述】:
我正在运行一个 Python 程序 service_host.py,它启动了多个进程。当我使用ps -ef | grep python
检查 pid,它显示了很多:
congmin 26968 22897 0 Jun20 ? 00:00:00 python service_host.py
congmin 26969 22897 0 Jun20 ? 00:00:00 python service_host.py
congmin 26970 22897 0 Jun20 ? 00:00:00 python service_host.py
congmin 26971 22897 0 Jun20 ? 00:00:00 python service_host.py
congmin 26972 22897 0 Jun20 ? 00:00:00 python service_host.py
congmin 26973 22897 0 Jun20 ? 00:00:00 python service_host.py
congmin 26974 22897 0 Jun20 ? 00:00:00 python service_host.py
congmin 26975 22897 0 Jun20 ? 00:00:00 python service_host.py
一次杀死所有这些进程的最佳方法是什么?我在Linux上,不想通过进程ID一一杀死。有没有办法通过 Python 名称“service_host.py”杀死它们?我试过了,但它根本没有杀死:
import psutil
PROCNAME = "service_host.py"
for proc in psutil.process_iter():
# check whether the process name matches
if proc.name() == PROCNAME:
proc.kill()
是否有可以轻松完成这项工作的终端命令?
【问题讨论】:
-
在 shell
pkill python? -
我不想杀死所有 python 进程。仅与名称“service_host.py”相关的那些
-
然后试试
pkill service_host.py或者pkill -e 'python service_host.py' -
不,它根本不会杀人。
-
pkill -f 'service_host.py'。这可以完成工作。谢谢。
标签: python process pid kill-process sigkill