首页 > 解决方案 > 在脚本中运行子进程并根据输出,继续执行脚本

问题描述

我正在编写一个脚本,它使用子进程启动服务器,然后继续执行脚本。这是我当前的代码

cmd = "some command"
process = check_output(cmd, shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)

time.sleep(70)
print(process.returncode)

我正在使用 time.sleep 来延迟脚本中下一行的执行,以便服务器启动,但这效率不高。

一旦服务器启动,我会在控制台中得到这个输出:INFO:bridge_serving! 有没有办法可以检查控制台的输出,一旦它说INFO:bridge_serving!脚本的下一行应该继续运行。

标签: pythoncmdsubprocesspopen

解决方案


我猜你希望进程在不断检查输出的同时保持打开/运行。

subprocess.check_output()在过程完成之前不会返回任何东西。

您可能希望保持进程打开并在创建输出时使用管道读取输出。

有关更多信息,请参阅:https ://stackoverflow.com/a/4760517/3389859。


推荐阅读