-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Вы можете запустить на сервере бот, написанный на Python или любом другом языке программирования. Чтобы обеспечить постоянную и надежную работу скрипта, потребуется настроить автозапуск и перезагрузку.
Загрузите файлы бота, например, в директорию /usr/local/bot
и создайте виртуальное окружение:
python3 -m venv venv
Активируйте его:
source ./venv/bin/activate
Далее установите все пакеты:
pip install -r requirements.txt
Если файл requirements.txt со списком пакетов отсутствует, установите все расширения вручную.
Проверьте версию Python - для библиотеки telebot требуется не ниже 3.7:
python3 -V
Рассмотрим запуск приложения в роли службы. Systemd — это менеджер системы и служб Linux. Он управляет службами, которые описаны в конфигурационных файлах, и запускает их.
Создайте новый юнит systemd:
sudo nano /lib/systemd/system/bot.service
Добавьте в него следующее содержимое:
[Unit]
Description=School Bot Service
After=network.target
[Service]
Type=idle
Restart=always
RestartSec=3
User=root
WorkingDirectory=/usr/local/bot
ExecStart=/usr/local/bot/venv/bin/python3.7 /usr/local/bot/bot.py
[Install]
WantedBy=multi-user.target
где:
Description
— название службы,
ExecStart
— путь до интерпретатора Python и скрипта,
User
— пользователь, от которого будет запущена служба,
Restart=always
— указание, что необходимо перезапустить бота после ошибки.
Осталось перезагрузить юниты, добавить службу в автозапуск и активировать бота:
sudo systemctl daemon-reload
sudo systemctl enable bot.service
sudo systemctl start bot.service
Теперь проверьте работу бота. Если бот не отвечает, попробуйте запустить его в терминале и посмотреть, нет ли ошибок.