首页 > 解决方案 > Python:杀死一个张量流子进程

问题描述

是否可以使用 python杀死另一个用户的进程:

import subprocess

def killProcess(pid):
    p = subprocess.Popen(['sudo','kill','-9',str(pid)], stdout=subprocess.PIPE)

因为如果我执行这个,什么都不会发生。如果我在终端中执行 sudo kill -9 pid ,无论哪个用户登录它都可以工作。所以我认为我的 Popen 执行有问题。我尝试杀死由 python 多处理模块生成的子进程。这些子流程中的每一个都会创建 tensorflow 实例。当主进程终止时,子进程仍然阻塞 GPU 内存,因此必须被终止。

我也尝试了这种psutil.Process(pid).terminate()方法。但后来我收到错误消息:

AccessDenied: psutil.AccessDenied (pid=326080)

有人有想法吗?

此致!

标签: pythontensorflowmultiprocessingsubprocesssigkill

解决方案


尝试使用 psutil,

for i in psutil.process_iter():
   if 'tensorflow' in i.name():
       i.kill()

或者

[i.kill() for i in psutil.process_iter() if 'tensorflow' in i.name()]

每个进程迭代器都有自己的.kill()属性。


推荐阅读