Systemd Unit для Telegram-бота на Python (Aiogram, Telebot, изоляция прав)
Готовый systemd .service файл для непрерывной работы Telegram-бота на Python (Aiogram 3 / Telebot): автоперезапуск при ошибках API, изоляция пользователя и venv.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/systemd/system/tg-bot.service
# /etc/systemd/system/tg-bot.service
[Unit]
Description=Telegram Bot Service
After=network.target
[Service]
Type=simple
User=botuser
Group=botuser
WorkingDirectory=/home/botuser/my_bot
EnvironmentFile=/home/botuser/my_bot/.env
ExecStart=/home/botuser/my_bot/venv/bin/python bot.py
Restart=always
RestartSec=10
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
EnvironmentFile=.env |
.env | Безопасно загружает токен бота `BOT_TOKEN` из изолированного файла конфигурации. |
RestartSec=10 |
10s | Пауза перед рестартом при сетевых сбоях Telegram API. |
Restart=always |
always | Обеспечивает автоматический перезапуск демона или скрипта при критическом сбое или нехватке памяти. |
LimitNOFILE=65535 |
65535 | Снимает стандартные ограничения ОС на количество одновременно открытых сетевых сокетов и дескрипторов. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 1 vCPU, 1 GB RAM, NVMe VDS
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
1 vCPU /
1 GB RAM /
15 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
1 vCPU /
1 GB RAM /
15 GB NVMe
Beget
Turbo 4 GB
Рекомендуемые ресурсы
1 vCPU /
1 GB RAM /
15 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Как передать токен в бота?
Создайте файл `.env` с правами `chmod 600 .env` и директивой `BOT_TOKEN=...`.
Как посмотреть логи запущенной службы в реальном времени?
Выполните команду `journalctl -u <имя_сервиса>.service -f -n 100`.
Что делать после редактирования .service файла?
Всегда выполняйте `systemctl daemon-reload` перед перезапуском службы `systemctl restart <имя_сервиса>`.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.