gpt4 book ai didi

python - 手动关闭子进程.PIPE

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:53 24 4
gpt4 key购买 nike

我正在使用

std = subprocess.PIPE 

并检查输出的每一行中的特定术语。如果我“完成”,我会通过 os.kill 手动终止子进程:

p = subprocess.Popen(['vprobe' ,'/vprobe/myhello.emt'], shell = False, stdout=subprocess.PIPE, preexec_fn=os.setsid)
while True:
line = p.stdout.readline()
logfile.write(line)
if re.search("done", line):
break
print "waiting"
os.kill(p.pid, signal.SIGINT)

该进程确实被杀死了(我在unix中使用“ps”命令进行了检查),但最后我得到了一个错误:

close failed in file object destructor:
Error in sys.excepthook:
Original exception was:

我认为这很可能是因为我在没有实际关闭 PIPE 的情况下终止了该进程。有什么建议我可以手动完成吗?

最佳答案

Popen 对象有一个 terminate方法就是为了做到这一点。能不能不用这个方法呢?

如果你真的想用SIGINT来杀死,还有一个send_signal方法。

关于python - 手动关闭子进程.PIPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13030162/

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