Python:杀死tensorflow子进程

时间:2019-06-26 13:34:43

标签: python tensorflow multiprocessing subprocess sigkill

是否可以通过以下方式使用python杀死另一个用户的进程

import subprocess

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

因为如果执行此操作,则什么也不会发生。 如果我在终端中执行sudo kill -9 pid,无论Iam登录到哪个用户,它都将起作用。因此,我认为我的Popen执行有问题。。我试图杀死由pythons多处理模块产生的子进程。这些子流程中的每一个都会创建张量流实例。当主进程终止后,子进程仍然阻塞GPU的内存,因此必须终止。

我还尝试了psutil.Process(pid).terminate()方法。但是然后我收到错误消息:

AccessDenied: psutil.AccessDenied (pid=326080)

有人有主意吗?

最诚挚的问候!

1 个答案:

答案 0 :(得分:0)

尝试使用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()属性。