Запустить скрипт в качестве Сервиса.
У меня сделано так:
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