1
我有幾個必須設置的Linux設備。一旦建立起來,他們會在一個偏遠的地方,我無法讓他們回來。我正在使用樹莓派。這些設備將運行幾個腳本,必須無限期地工作數月或數年。 那些設備上運行的腳本:在Linux上無限期運行腳本的最可靠的方法
- 的Python
- 擊(autossh)
什麼我迄今所做的:
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 [email protected]_ip_address -p 22 &
exit 0
使用-f選項和&符號(&)可以很好地工作。
經過一週的測試和幾次重啓之後,它看起來很可靠,但我不知道它是否會持續數月或數年。
我的問題是:
什麼是啓動一個bash的crontab和rc.local中的最佳方式是什麼? 有沒有其他的方法來檢查腳本是否正在運行,如果不是,則重新啓動?
謝謝,
您是否需要升級這些腳本/程序? – 2014-10-31 11:30:59
嗨巴西爾。是的,這就是我使用autossh的原因。我需要能夠連接到設備。 – Yoan 2014-10-31 11:31:58
某人寫了一個名爲** supervisord **的守護進程。用法示例:http://stackoverflow.com/questions/26071268/how-to-keep-a-script-running-all-the-time-in-linux/26072493#26072493 – Paul 2014-10-31 11:35:16