gpt4 book ai didi

python - 如何使用 envoy.connect 避免僵尸进程?

转载 作者:行者123 更新时间:2023-12-01 05:30:54 25 4
gpt4 key购买 nike

我刚刚发现了“envoy”模块,它是请求创建者制作的 python 子进程的包装器。

我在使用“connect”函数时遇到问题:每次使用它时,都会导致僵尸进程,并且我无法获取 status_code 或结果。

c=envoy.connect("ls -al")
c.status_code == None
True

如果我执行“ps -ef|grep thepid”,我会得到“已失效”的 pid。

我可以通过执行 os.wait() 或 c._process.wait() 来杀死僵尸,但我无法获得命令的结果(标准输出)...

有什么想法吗?

最佳答案

在您的情况下,您应该使用 run() 方法

正如 Envoy 文档所建议的:

r = envoy.run(cmd)
print r.status_code, r.std_out

但如果您希望命令异步运行,您可以使用 connect() 后跟 block()

一旦调用block(),返回代码就可用。但是 block() 会阻止你的程序,所以逻辑应该是这样。

c1=envoy.connect(cmd1)
c2=envoy.connect(cmd2)
c3=envoy.connect(cmd3)
... more staff ...
c1.block()
print c1.status_code

关于python - 如何使用 envoy.connect 避免僵尸进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20329389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com