[英]Most reliable way to run a script indefinitely on Linux
我必須設置一些Linux設備。 設置完成后,它們將位於遠程位置,我將無法將它們找回。 我正在使用樹莓派。 這些設備將運行多個腳本,這些腳本必須無限期工作數月或數年。 設備上運行的腳本:
到目前為止,我所做的是:
Cron工作
設備啟動時,將啟動bash腳本:
@reboot sudo bash /home/user/Python/Python_bash_1.sh
有bash腳本檢查Python腳本是否正在運行:
#!/bin/bash
until python3 /home/user/Python/program_1.py; do
echo "'program_1.py' exit code $?. Program restarting.." >&2
sleep 1
done
在rc.local
另一種選擇是使用rc.local:
#SSH auto connection
autossh -M 10001 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /root/.ssh/rsa_rasp_dev_1 -R 6001:localhost:22 root@middle_ip_address -p 22 &
exit 0
使用-f選項和與符號(&)可以很好地工作。
經過一個星期的測試和幾次重新啟動,它看起來很可靠,但是我不知道它會持續幾個月還是幾年。
我的問題是:
在crontab和rc.local之間啟動bash的最佳方法是什么? 還有其他方法可以檢查腳本是否正在運行並重新啟動腳本嗎?
謝謝,
有專門的工具可以解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.