Вы можете запустить на сервере бота, написанного на Python или любом другом языке программирования. Чтобы обеспечить постоянную и надежную работу скрипта, потребуется настроить автозапуск и перезагрузку.
Загрузите файлы бота, например, в директорию /home/me
и создайте виртуальное окружение:
python3 -m venv venv
Активируйте его:
source ./venv/bin/activate
Далее установите все пакеты:
pip install -r requirements.txt
Если файл requirements.txt
со списком пакетов отсутствует, установите все расширения вручную.
Для простого запуска скрипта в фоне можно воспользоваться утилитой screen
, которая позволяет создавать неограниченое количество сессий в терминале.
Ее необходимо установить из репозитория:
sudo apt install screen
Запустите новое окно командой:
screen
Активируйте виртуальное окружение и запустите бота:
source ./venv/bin/activate
python main.py
Осталось свернуть сессию. Для этого необходимо зажать сочетание клавиш Ctrl + A, после чего нажать D.
Список основных команд:
screen
— запуск новой сессии;screen -ls
— просмотр всех сессий;screen -r <socket_name>
— открыть конкретную сессию (если сессия всего одна, то имя можно не указывать).В сессии:
Это простой метод, который не требует создания конфигурационных файлов. Однако если сервер будет перезагружен или во время работы скрипта возникнет ошибка, бота нужно будет запустить заново.
Рассмотрим запуск приложения в роли службы. Systemd — это менеджер системы и служб Linux. Он управляет службами, которые описаны в конфигурационных файлах, и запускает их.
Создайте новый юнит systemd:
sudo nano /lib/systemd/system/bot.service
Добавьте в него следующее содержимое:
[Unit]
Description=Timeweb Bot Service
After=network.target
[Service]
Type=idle
Restart=always
RestartSec=3
User=root
WorkingDirectory=/home/me/bot
ExecStart=/home/me/bot/venv/bin/python /home/me/bot/main.py
[Install]
WantedBy=multi-user.target
где:
Осталось перезагрузить юниты, добавить службу в автозапуск и активировать бота:
sudo systemctl daemon-reload
sudo systemctl enable bot.service
sudo systemctl start bot.service
Теперь проверьте работу бота. Если бот не отвечает, попробуйте запустить его в терминале и посмотреть, нет ли ошибок
Еще один способ запустить бота — использовать менеджер процессов PM2. О нем мы подробнее писали в Community. PM2 автоматически перезапускает бота и сохраняет логи.
Установите следующие пакеты:
sudo apt install nodejs
sudo apt install npm
Далее установите PM2:
npm install pm2 -g
Для запуска бота перейдите в директорию с ботом и запустите его командой:
pm2 start main.py --interpreter=python3