我有一些我必须设置的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的最佳方法是什么? 是否还有其他方法可以检查脚本是否正在运行,如果不是则重新启动?
谢谢,
答案 0 :(得分:1)
有一些特殊的工具可以解决这个问题。