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

Python 重新启动时运行.sh脚本并使其保持运行状态,python,linux,bash,shell,ssh,Python,Linux,Bash,Shell,Ssh,我正在尝试在重新启动时运行一个简单的.sh脚本。我想让这个脚本永远运行。我把这个脚本放在用户目录的一个文件夹中,在/home/user/folder/script.sh中。它运行在一个简单的vps上,我可以通过ssh访问。如果我在同一个目录下通过执行/script.sh&来运行它,那么它工作得非常好。当我关闭ssh连接时,它停止 我尝试添加一个类似这样的crontab条目:@reboot/home/user/folder/script.sh&(如其他答案中所建议的),然后只需键入sudo reb

我正在尝试在重新启动时运行一个简单的.sh脚本。我想让这个脚本永远运行。我把这个脚本放在用户目录的一个文件夹中,在
/home/user/folder/script.sh
中。它运行在一个简单的vps上,我可以通过ssh访问。如果我在同一个目录下通过执行
/script.sh&
来运行它,那么它工作得非常好。当我关闭ssh连接时,它停止

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

我不知道哪一个是解决这个问题的最好办法。sh就是这个脚本(我在搜索一些解决方案以在python start.py崩溃时重新启动它时发现了它):

这正是我所需要的


谢谢你的帮助

关闭ssh连接时,脚本会收到挂起信号并退出。如果像这样启动脚本,可以使用
nohup
忽略挂起信号:

nohup ./script.sh &

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

您应该查看流程管理器。有一些工具是专门为正确完成这项工作而设计的,它们不是shell脚本循环黑客。在公认的答案中,它提到了几个“@reboot”陷阱。忘记shell脚本和cronjobs吧,它们同样会让你做的事情变得糟糕。在Linux下,init/upstart是使服务器进程在机器正常运行时间内持续运行的方法。例如,看看/etc/init和/etc/init.d中的条目;cron已经在后台运行。
nohup ./script.sh &