【发布时间】:2015-09-30 22:47:44
【问题描述】:
我正在尝试在重新启动时运行一个简单的 .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
它正是我所需要的。
感谢您的帮助!
【问题讨论】:
-
您应该调查流程主管。有些工具旨在正确地完成这项工作,而不是 shell 脚本循环黑客。
-
也看看这篇文章——unix.stackexchange.com/questions/109804/…。它在接受的答案中提到了几个“@reboot”陷阱。
-
忘掉 shell 脚本和 cronjobs,它们同样很讨厌你正在尝试做的事情。在 Linux 下,init/upstart 是使服务器进程持续机器正常运行时间的方法。查看 /etc/init 和 /etc/init.d 中的条目以获取示例。
-
在后台运行 cron 作业完全没有意义; cron 已在后台运行。
标签: python linux bash shell ssh