【发布时间】:2017-04-02 06:19:47
【问题描述】:
我用p.terminate 终止我的子进程,我是这样打开的:
p = Popen([sys.executable, args], stdin=PIPE, stdout=PIPE, stderr=open("error.txt", 'a'))
如您所见,我将所有错误重定向到一个文本文件,以便我可以轻松阅读它。 当子进程终止时,我误用了此功能将某些内容打印到此文件中:
signal.signal(signal.SIGTERM, sigterm_handler) # sets shutdown_flag
while True:
if shutdown_flag:
print("Some Useful information", file=sys.stderr)
但是:文件始终为空。这是因为当调用terminate 时管道关闭并且此时从子进程写入的任何内容都丢失了?或者还有其他我在这里没有看到的问题?
【问题讨论】:
标签: python subprocess sigterm