LINUX.ORG.RU

Периодический перезапуск скрипта

 ,


0

1

Добрый день

Есть ssh на хостинге, на котором запускается простой скрипт на питоне, который получает данные от одной удаленной железки. Скрипт периодически падает. Глубоко в причины пока лезть не хочется, а хочется следующего:

а) Периодически проверять - работает ли скрипт? Если нет, то запускать.

б) Периодически принудительно завершать его и перезапускать.

Помогите пожалуйста. Я так понимаю, что лучше сделать какой-то зацикленный bash-скрипт, с несколькими условиями и счетчиком, который и будет все это делать.

Или два скрипта - один для проверки «а есть ли процесс», а второй - периодический перезапуск через cron.

Заранее спасибо!


cron

Вешай оба скрипта в cron. Тайминги можешь регулировать через создание доп. файлов с данными (время запуска, pid и тп).

Свой скрипт заставь скидывать свой pid в файл, чтобы читать его проверять, что процесс еще работает без волокиты. А лучше, просто оберни его в bash скрипт и скидывай $! в файлик. Работы на 5 минут.

Если нужно проверять не завис ли скрипт, то по крону создавай файлик, который твой исходный рабочий скрипт должен удалять раз в N минут. Так можно легко контролить то, что скрипт не подвис где-то.

Norgat ★★★★★
()
Последнее исправление: Norgat (всего исправлений: 2)

если у тебя systemd то это решается простым Restart=always в секции [Service] systemd . service файла
Пример: файл /etc/systemd/system/whybot.service
Его содержимое:

[Unit]
Description=Why bot
After=network.target

[Service]
Type=simple
User=serg
ExecStart=/opt/run/whybot/whybot.py
Restart=always

[Install]
WantedBy=multi-user.target

man_of_motley ★★
()
Последнее исправление: man_of_motley (всего исправлений: 1)

Ещё вариант monit + крон.

backbone ★★★★★
()
Ответ на: комментарий от man_of_motley

Если у тебя бот привязан к конкретному IP, то свалится на загрузке системы.

slamd64 ★★★★★
()

cron

* * * * * pidof script.py || script.py
zolden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.