python - 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)
有人有想法吗?
此致!
解决方案
尝试使用 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()
属性。
推荐阅读
- python - 如何在 Python3 中列出导入的模块和版本
- cassandra - 在 flink 操作中终止对数据库的请求
- java - RxJava 将列表拆分为分区
- c# - C# Entity Framework - 列名无效
- azure-devops - VSTS - MVC Web 应用程序部署任务已弃用。如何部署到本地测试服务器
- node.js - NoSuchElement:无法定位元素
- scala - 如何采用最终在数据框中匹配的最高排名过滤条件?
- javascript - 服务器返回空响应
- android - 更新 android studio 后预览不显示
- php - 自定义 WordPress 主题 - 菜单不会添加到导航