@timka228

Как сделать автоматическое поддержание работы скрипта Python на Ubuntu?

Есть небольшой vds на ubuntu 16.04, на котором работают скрипты python. Они работают все в screen. Так вот есть один скрипт, который выполняет функцию бота телеграм. Он переодически вылетает из-за ошибки (вроде longpool отваливается). Можно ли как-то сделать автоматический запуск скрипта при его падении? И как? Еще желательно, чтобы при ребуте сервера скрипты тоже сами запускались.
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 2
Victor_M
@Victor_M
Системный аналитик
Запустить скрипт в качестве Сервиса.
У меня сделано так:
1. Пользователь-владелец домашнего каталога скрипта - telebot, рут-права не обязательны для работы
2. Создать файл telebot.service в каталог /etc/systemd/system

Содержимое файла:
[Unit]
Description=Service for Telegram bot main. From user telebot
After=network.target
# Для запуска сервиса нужен запущенный сервис MySQL (т.к. работаем с базой данных, расположенной на этом же сервере)
After=mysql.service
Requires=mysql.service

[Install]
WantedBy=multi-user.target

[Service]
# Даем знать systemd, что этот сервис представляет из себя лишь 1 процесс.
# Ожидается, что процесс, настроенный с помощью ExecStart= является основным процессом службы
Type=simple
# Устанавливаем рабочую дирректорию службы
WorkingDirectory=/home/telebot/bot_prod/
# Указаываем пользователя и группу для работы службы
User=telebot
Group=telebot
# Должна ли служба считаться активной, даже если все ее процессы завершены
RemainAfterExit=no
# Выполнить эту команду при запуске сервиса.
ExecStart=python3 /home/telebot/bot_prod/bot.py
# Говорим, что нужно перезапускать сервис, если вдруг он умер
Restart=on-failure
# Таймаут на включение и выключение
TimeoutSec=60
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы