Не уверен, что понимаю это или нет: я запускаю скрипт на нескольких экземплярах AWS во время сеанса экрана. Скрипты основаны на Python и перестали работать через некоторое время из-за сетевых проблем с Amazon Arora и экземпляром EC2. Я вхожу в систему и попадаю в сеанс экрана, выполнив screen -d -r <screen_name>
, остановите скрипт и запустите заново.
Есть ли способ автоматизировать это? то есть перезапустить скрипт? У меня нет проблем, если этот другой скрипт убьет существующий экран, а затем запустит снова
Я бы посоветовал создать правильный сценарий инициализации, который запускает ваш сценарий в мультиплексоре терминала, перезапуская сценарий в случае сбоя. Затем при необходимости можно прикрепить к ходовой screen
или tmux
сеанс и следите за своим скриптом.
В моем случае у меня есть несколько модулей systemd, которые запускают программы golang на консоли под tmux
и делегируйте жизненный цикл этих программ golang (запуск, перезапуск в случае сбоя, остановка при завершении работы и т. д.) «официальной» системе инициализации вашей ОС.
В качестве отправной точки я использовал пример из этого вопроса: https://askubuntu.com/questions/802189/how-to-run-tmux-screen-with-systemd-230
Ваш объект спрашивает о перезапуске скрипта через заданное время. Если это точный сценарий, используйте cron
вызывать python
для запуска ваших скриптов. Я предлагаю взломать оболочку, введите man cron
и наслаждайтесь чудесами, которые открываются перед вами.
Если вы хотите отслеживать, запущен ли процесс, а если нет, запустить его снова, у вас есть несколько вариантов, но, скорее всего, вы хотите написать его как службу и использовать систему инициализации операционной системы хоста для ее запуска, а затем такой инструмент, как Monit, upstart или systemd, чтобы убедиться, что он работает, и перезапустите его, если нет.
Я бы сказал, что вы только что забронировали остаток года с планом чтения. знак равно