Назад | Перейти на главную страницу

Перезапуск скрипта через X интервала времени

Не уверен, что понимаю это или нет: я запускаю скрипт на нескольких экземплярах 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, чтобы убедиться, что он работает, и перезапустите его, если нет.

Я бы сказал, что вы только что забронировали остаток года с планом чтения. знак равно