gpt4 book ai didi

python - bash 在继续之前等待第一个 python 文件启动

转载 作者:太空宇宙 更新时间:2023-11-04 10:28:51 25 4
gpt4 key购买 nike

我有这个 bash:

#!/bin/sh
# launcher.sh

echo "Remote Control Server is starting up..."
sudo python RControlPanel.py &
wait &
sudo python startup.py &
wait

第一个 python 文件是一个 flask 服务器,它必须首先启动。第二个文件是初始化树莓派上的组件,并打开几个 LED 和其他东西。脚本的写法需要先flask应用再初始化组件。似乎 flask 应用程序启动时间更长,bash 脚本继续运行 startup.py

是否可以确保 flask 应用程序正在运行,然后继续执行下一个脚本?我虽然在最后等待会起作用,但它没有。我什至尝试过 sleep 。

更新:我不太确定,但我认为当 flask 应用程序运行时,会进入无限循环并等待请求,就像普通的 Web 服务器一样。也许这就是为什么下面的解决方案不起作用的问题。

最佳答案

我想 Flask 服务器打开了一些 HTTP 端口?假设在端口 8080 上,那么您可以像这样轮询应用程序:

while ! curl http://localhost:8080 -m1 -o/dev/null -s ; do
sleep 0.1
done

选项:

  • -m1 允许最多 1 秒的 HTTP 请求。如果您的防火墙配置为静默地将数据包丢弃到关闭的端口,这应该会使它运行得更快。
  • -o/dev/null 这样就不会打印 HTTP 响应主体。
  • -s 隐藏任何错误,正如预期的那样。

如果您仍然希望在服务器启动之前看到“连接被拒绝”消息滚动,请添加 -S

关于python - bash 在继续之前等待第一个 python 文件启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112577/

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