---
title: "Запуск бота в фоновом режиме — База знаний Timeweb Cloud"
description: "Запуск бота в фоновом режиме. Документация и инструкции по управлению IT-инфраструктурой. Timeweb Cloud — облачные решения для вашего бизнеса."
---

# Запуск бота в фоновом режиме

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Вы можете запустить на сервере бота, написанного на Python или любом другом языке программирования. Чтобы обеспечить постоянную и надежную работу скрипта, потребуется настроить автозапуск и перезагрузку. 

## Подготовка

Загрузите файлы бота, например, в директорию  `/home/me` и создайте виртуальное окружение:

```shell
python3 -m venv venv
```

Активируйте его:

```py
source ./venv/bin/activate
```

Далее установите все пакеты:

```py
pip install -r requirements.txt
```

Если файл `requirements.txt` со списком пакетов отсутствует, установите все расширения вручную.

## Screen — самый простой метод

Для простого запуска скрипта в фоне можно воспользоваться утилитой `screen`, которая позволяет создавать неограниченное количество сессий в терминале.

Ее необходимо установить из репозитория:

```shell
sudo apt install screen
```

Запустите новое окно командой:

```shell
screen
```

Активируйте виртуальное окружение и запустите бота:

```shell
source ./venv/bin/activate 
python main.py
```

Осталось свернуть сессию. Для этого необходимо зажать сочетание клавиш Ctrl + A, после чего нажать D.

Список основных команд:

-   `screen` — запуск новой сессии;
-   `screen -ls` — просмотр всех сессий;
-   `screen -r <socket_name>` — открыть конкретную сессию (если сессия всего одна, то имя можно не указывать).

В сессии:

-   Ctrl + A + D — свернуть сессию;
-   Ctrl + A + K — завершить сессию.

Это простой метод, который не требует создания конфигурационных файлов. Однако если сервер будет перезагружен или во время работы скрипта возникнет ошибка, бота нужно будет запустить заново.

## Systemd

Рассмотрим запуск приложения в роли службы. [Systemd](https://timeweb.cloud/docs/unix-guides/service-management-in-systemd) — это менеджер системы и служб Linux. Он управляет службами, которые описаны в конфигурационных файлах, и запускает их.

Создайте новый юнит systemd:

```shell
sudo nano /etc/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
```

где:

-   Description — название службы,
-   ExecStart — путь до интерпретатора Python и скрипта,
-   User — пользователь, от которого будет запущена служба,
-   Restart=always — указание, что необходимо перезапустить бота после ошибки.

Осталось перезагрузить юниты, добавить службу в автозапуск и активировать бота:

```shell
sudo systemctl daemon-reload 
sudo systemctl enable bot.service 
sudo systemctl start bot.service
```

Теперь проверьте работу бота. Если бот не отвечает, попробуйте запустить его в терминале и посмотреть, нет ли ошибок

## **PM2**

Еще один способ запустить бота — использовать менеджер процессов PM2. О нем мы подробнее писали в [Community](https://timeweb.com/ru/community/articles/ispolzuem-process-menedzhment-na-maksimum-ustanovka-i-nastroyka-pm2-1). PM2 автоматически перезапускает бота и сохраняет логи.

Установите следующие пакеты:

```shell
sudo apt install nodejs
sudo apt install npm
```

Далее установите PM2:

```shell
npm install pm2 -g
```

Для запуска бота перейдите в директорию с ботом и запустите его командой:

```shell
pm2 start main.py --interpreter=python3
```
