Leon1010

Я в Соц.сетях:

Теги:

Ссылки

Запускаем Python скрипт как сервис

Допустим, написали мы telegram бота на Python, теперь нам нужно чтобы он работал в фоне постоянно.

Можно написать демон для systemd если в вашей операционной системе он используется.

Создаём файл демона:
#touch /etc/systemd/system/bot.service

Вставляем туда следующее:

[Unit]
Description=My bot
After=syslog.target 
After=network.target
 
[Service]
Type=idle
ExecStart=/usr/bin/python3 /путь/до/скрипта/bot.py
Restart=always
RestartSec=15
 
[Install]
WantedBy=multi-user.target

После этого в консоли выполяем:

#systemctl daemon-reload
#systemctl enable bot
#systemctl start bot

Чтобы остановить бот:
sudo systemctl stop bot
Чтобы удалить из автозагрузки:
sudo systemctl disable bot
Чтобы проверить работу демона:
#systemctl status bot

Чтобы смотреть журнал работы (вывод в консоль) демона:
#journalctl -u bot -f -o cat

Запуск Python бота через pm2

pm2 — довольно удобный менеджер процессов, который так-же как systemctl автоматически запускает их при запуске системы и может перезапускать при вылете.

У вас должен быть установлен npm.

Устанавливаем pm2: #npm i -g pm2

И так, для начала на нужно с помощью команды cd, перейти в директорию где расположен главный файл бота.

Затем, выполняем команду:

#pm2 start main.py --interpreter=/usr/local/bin/python3.9 --exp-backoff-restart-delay=100 -n name_bot

main.py — Имя главного файла

/usr/local/bin/python3.9 — Путь до обработчика python

100 — время в миллисекундах до перезапуска после сбоя

name_bot — Название процесса который мы создаем

Посмотреть состояние всех процессов pm2:

#pm2 ls

Посмотреть вывод (логи) конкретного бота (процесса):

#pm2 logs name_bot

Удалить не нужный процесс из pm2:

#pm2 delete name_bot

Запись опубликована в рубрике Администрирование.