Python:杀死一个张量流子进程

Posted

技术标签:

【中文标题】Python:杀死一个张量流子进程【英文标题】:Python: Kill a tensorflow subprocess 【发布时间】:2019-11-08 11:29:07 【问题描述】:

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

import subprocess

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

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

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

AccessDenied: psutil.AccessDenied (pid=326080)

有人有想法吗?

最好的问候!

【问题讨论】:

【参考方案1】:

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

【讨论】:

不错的方法,但问题仍然是进程是由另一个用户产生的,我得到 AcessDenied 错误

以上是关于Python:杀死一个张量流子进程的主要内容,如果未能解决你的问题,请参考以下文章

子进程子回溯

38父进程子进程进程组作业和会话

MPI C 将矩阵逐行发送到所有进程子进程 (MPI_COMM_SPAWN)

linux进程间通信--信号通信

在 Swift 3 中包含字典的 Firebase 进程子快照

python2 logging模块在多进程和多线程混用下的一个坑