在重新启动时运行.sh脚本并使其保持运行

时间:2015-07-12 17:07:42

标签: python linux bash shell ssh

我正在尝试在重启时运行一个简单的.sh脚本。我想让这个脚本永远运行。我将此脚本放在用户目录的/home/user/folder/script.sh中的文件夹中。它运行在一个简单的vps上,我可以通过ssh访问。如果我在同一目录中执行./script.sh &时运行它,它可以完美地运行。当我关闭ssh连接时,它会停止。

我尝试添加一个像这样的crontab条目:@reboot /home/user/folder/script.sh &(如其他答案所示)然后只需输入sudo reboot但它不起作用。

我不知道哪一个是解决这个问题的最佳方法。 script.sh就是这个(我在搜索一些解决方案时发现了它,如果崩溃则重启python start.py):

until ./start.py; do
    echo "Server 'myserver' crashed with exit code $?.  Respawning.." >&2
    sleep 1
done

它完全符合我的需要。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

当您关闭ssh连接时,您的脚本会收到挂起信号并退出。如果您按照以下方式启动脚本,则可以使用nohup忽略挂断信号:

nohup ./script.sh &

然后在关闭连接后脚本将继续运行。