Настройка бота как службы позволяет запускать его в фоновом режиме и легко управлять.
- Выберите папку, где будет храниться ваш бот:
root/example_folder
(например) - Откройте терминал и перейдите в эту папку:
cd root/example_folder
- Клонируйте репозиторий с помощью git:
git clone https://github.com/shamhi/HamsterKombatBot.git
- Перейдите в клонированный репозиторий:
cd root/example_folder/HamsterKombatBot
- Создайте виртуальное окружение:
python3 -m venv venv
- Активируйте виртуальное окружение:
source venv/bin/activate
- Установите все зависимости Python:
pip3 install -r requirements.txt
- Создайте файл окружения из шаблона:
cp .env-example .env
- Настройте необходимые параметры в файле
.env
с помощью любого текстового редактора:nano .env
(nano в качестве примера) - Запустите
main.py
и инициализируйте сессию.
- Перейдите в системную папку, где хранятся все службы, используя терминал:
cd /etc/systemd/system/
- Создайте файл службы с любым именем:
sudo touch hamsterbot.service
- Заполните файл
.service
содержимым, используя любой текстовый редактор:sudo nano hamsterbot.service
(nano в качестве примера) Содержимое:[Unit] Description=HamsterKombatBotService After=network.target [Service] User=root WorkingDirectory=/root/example/HamsterKombatBot/ Environment=PATH=/root/example/HamsterKombatBot/venv/bin/ ExecStart=/root/example/HamsterKombatBot/venv/bin/python3 /root/example/HamsterKombatBot/main.py -a 2 Restart=always [Install] WantedBy=multi-user.target
User=
- пользователь, от имени которого запускается службаWorkingDirectory=
- путь к папке с клонированным репозиториемEnvironment=
- путь к виртуальному окружению / значение переменной окруженияExecStart=
- команда запуска
- Перезагрузите конфигурацию менеджера служб, используя терминал:
sudo systemctl daemon-reload
- Включите службу, настроив ее на автоматический запуск:
sudo systemctl enable hamsterbot.service
Теперь мы закончили.
Остановить службу:
sudo systemctl stop hamsterbot.service
Запустить службу:
sudo systemctl start hamsterbot.service
Перезапустить службу:
sudo systemctl restart hamsterbot.service
Проверить статус:
sudo systemctl status hamsterbot.service
Проверить логи:
sudo journalctl -u hamsterbot.service
Проверить логи в реальном времени:
sudo journalctl -u hamsterbot.service -f