【发布时间】:2021-08-02 20:26:17
【问题描述】:
如果我在subprocess.Popen 中运行'make' 命令,它不会在超时后终止
with subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except subprocess.TimeoutExpired:
process.kill()
stdout, stderr = process.communicate()
我试过了
subprocess.check_output and subprocess.run
它们也不起作用。
如果使用上述方法独立运行 Makefile 中的每个命令,则可以正常工作。
【问题讨论】:
-
如果不重定向输入,为什么还要传递一些输入?
-
@Jean-FrançoisFabre 在我的情况下输入无关紧要。是的,它可以被删除。问题是“make”命令不会终止。在 Makefile 中有一个带有无限循环的程序启动,如果我以这种方式运行它而不是“make”,它就会被成功杀死
标签: python makefile subprocess