Как держать бота или скрипт онлайн 24/7
Запуск процесса в фоне: systemd, Docker, screen.
На домашнем ПК скрипт или бот выключится вместе с компьютером. Для круглосуточной работы нужен сервер (VPS) и запуск в фоне.
Вариант 1: systemd (рекомендуется на VPS)
Создайте файл /etc/systemd/system/mybot.service:
[Unit]
Description=Telegram Bot
After=network.target
[Service]
Type=simple
User=deploy
WorkingDirectory=/opt/mybot
Environment="PATH=/opt/mybot/.venv/bin"
ExecStart=/opt/mybot/.venv/bin/python bot.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Дальше:
sudo systemctl daemon-reload
sudo systemctl enable mybot
sudo systemctl start mybot
sudo systemctl status mybot
Логи: journalctl -u mybot -f.
Вариант 2: Docker
Соберите образ с ботом/скриптом и запускайте контейнер с restart: unless-stopped (в docker-compose.yml или docker run). При падении контейнер перезапустится.
Вариант 3: screen / tmux (просто, но без автозапуска)
screen -S bot
cd /opt/mybot && source .venv/bin/activate && python bot.py
# Отключиться: Ctrl+A, затем D
# Вернуться: screen -r bot
Если сервер перезагрузится, процесс не поднимется сам — нужен systemd или Docker.
Итог
- VPS + systemd — надёжно, автозапуск, удобные логи.
- Docker — изоляция, единый способ деплоя с другими сервисами.
- screen — быстро для теста, не для продакшена.