python - 在脚本中运行子进程并根据输出,继续执行脚本
问题描述
我正在编写一个脚本,它使用子进程启动服务器,然后继续执行脚本。这是我当前的代码
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!
脚本的下一行应该继续运行。
解决方案
我猜你希望进程在不断检查输出的同时保持打开/运行。
subprocess.check_output()
在过程完成之前不会返回任何东西。
您可能希望保持进程打开并在创建输出时使用管道读取输出。
推荐阅读
- c# - 在 ASP.Net MVC 中用新数据重新加载视图的一部分的更好方法是什么?
- cryptography - 如果用户创建新证书,他的证书是否可链接?
- c++ - 有什么方法可以精确地表示 rapidjson 双字符串?关于 rapidjson 工作流程,我有可能错了吗?
- oracle - 使用 ctl 文件 sqlldr oracle 导入时出错
- r - R 仅删除一组重复项
- google-sheets - 数组公式计数不正确
- python - 获取正确的numpy数组索引
- airflow - 覆盖网页 50% 的气流标志
- spring - 从 Spring Boot 调用安全的 Rest api
- java - Spring Crud Repository - 表示不满足的依赖关系 - 无法注入模型