Вы можете запустить на сервере бота, написанного на Python или любом другом языке программирования. Чтобы обеспечить постоянную и надежную работу скрипта, потребуется настроить автозапуск и перезагрузку.
Подготовка
Загрузите файлы бота, например, в директорию /home/me и создайте виртуальное окружение:
Активируйте его:
Далее установите все пакеты:
Если файл requirements.txt со списком пакетов отсутствует, установите все расширения вручную.
Screen — самый простой метод
Для простого запуска скрипта в фоне можно воспользоваться утилитой screen, которая позволяет создавать неограниченное количество сессий в терминале.
Ее необходимо установить из репозитория:
Запустите новое окно командой:
Активируйте виртуальное окружение и запустите бота:
Осталось свернуть сессию. Для этого необходимо зажать сочетание клавиш Ctrl + A, после чего нажать D.
Список основных команд:
screen— запуск новой сессии;screen -ls— просмотр всех сессий;screen -r <socket_name>— открыть конкретную сессию (если сессия всего одна, то имя можно не указывать).
В сессии:
- Ctrl + A + D — свернуть сессию;
- Ctrl + A + K — завершить сессию.
Это простой метод, который не требует создания конфигурационных файлов. Однако если сервер будет перезагружен или во время работы скрипта возникнет ошибка, бота нужно будет запустить заново.
Systemd
Рассмотрим запуск приложения в роли службы. Systemd — это менеджер системы и служб Linux. Он управляет службами, которые описаны в конфигурационных файлах, и запускает их.
Создайте новый юнит systemd:
Добавьте в него следующее содержимое:
где:
- Description — название службы,
- ExecStart — путь до интерпретатора Python и скрипта,
- User — пользователь, от которого будет запущена служба,
- Restart=always — указание, что необходимо перезапустить бота после ошибки.
Осталось перезагрузить юниты, добавить службу в автозапуск и активировать бота:
Теперь проверьте работу бота. Если бот не отвечает, попробуйте запустить его в терминале и посмотреть, нет ли ошибок
PM2
Еще один способ запустить бота — использовать менеджер процессов PM2. О нем мы подробнее писали в Community. PM2 автоматически перезапускает бота и сохраняет логи.
Установите следующие пакеты:
Далее установите PM2:
Для запуска бота перейдите в директорию с ботом и запустите его командой: