在 X 时间间隔后重新启动脚本

在 X 时间间隔后重新启动脚本

不确定我是否理解:我在屏幕会话下在多个 AWS 实例上运行脚本。这些脚本基于 Python,由于 Amazon Arora 和 EC2 实例的网络问题,一段时间后停止工作。我登录机器并通过执行 进入屏幕会话screen -d -r <screen_name>,暂停脚本并重新运行。

有没有办法可以自动化?也就是说,重新运行脚本?如果其他脚本终止现有屏幕然后重新启动,则不会出现任何问题

答案1

您的主题询问在一定时间后重新启动脚本。如果情况确实如此,则使用cron调用python来运行脚本。我的建议是打开 shell,输入man cron并享受展现在您面前的奇迹。

如果您想跟踪某个进程是否正在运行,如果没有,则重新启动它,您有几个选择,但最有可能希望将其写为服务并使用主机操作系统的 init 系统启动它,然后使用 Monit、upstart 或 systemd 等工具确保它正在运行,如果没有,则重新启动它。

我想说你已经用阅读计划预定了今年剩余的时间。=)

答案2

我建议创建一个适当的初始化脚本,在终端多路复用器下运行您的脚本,如果失败则重新启动脚本。然后,在需要时,您可以附加到正在运行的会话screentmux监视您的脚本。

就我而言,我有几个 systemd 单元在控制台上运行 golang 程序,tmux并将这些 golang 程序的生命周期(启动、失败时重新启动、关机时停止等)委托给操作系统的“官方”init 系统。

我使用这个问题中的例子作为起点:https://askubuntu.com/questions/802189/how-to-run-tmux-screen-with-systemd-230

相关内容