如何每隔 x 小时在 bash 脚本中重新启动 python 脚本?

How to restart python script inside bash script every x hours?


我有一个关于在 bash 脚本中启动和重新启动 python 脚本的非常简单的问题。我希望这不是重复的,但我没有找到类似的问题。
我正在使用一个 bash 脚本,每次我创建一个 docker 容器时它都会启动几个 python 脚本,但是它应该在所有 linux 基础机器。很简单:

python3 /mnt/device/script.py &
现在脚本将保持 运行 并测量亮度,直到容器停止。现在我发现传感器库存在一些问题,这些问题在 github 上被热烈讨论但仍未解决,这导致脚本每隔几个小时停止一次。对我来说,只要有一些命令就可以重新启动我的脚本,该脚本每 x 小时在后台 运行 以避免该错误。
所以我正在寻找的是一些命令,它将像下面这样:

python3 for hour=1 /mnt/device/script.py restart &

提前致谢!

您可以使用Bash timeout 命令发送信号来终止Python 脚本。

restart=""
while true; do
    timeout 3600 python3 /mnt/device/script.py $restart
    restart="restart"
done &

我猜你 真的 不需要这个 运行 在后台(所以也许去掉 &)而且你字面上希望 restart 在第一次之后作为参数传递。