Почему бот перестаёт работать, когда закрываешь ноутбук — и как сделать его вечным

Симптом знаком каждому, кто собрал первого телеграм-бота: вечером он бодро отвечал, ночью ты закрыл ноутбук, а утром друзья пишут «твой бот молчит». Кажется, что-то сломалось. На самом деле всё работает ровно так, как устроено, — просто туториалы забывают сказать одну вещь.
Вот она: бот — это не аккаунт в Телеграме, а процесс на той машине, где ты его запустил. Телеграм хранит только имя, аватарку и очередь сообщений. А отвечает на сообщения твой ноутбук — та самая программа в терминале. Ноутбук уснул — бот онемел. Разберём три конкретные причины и настоящий фикс.
Причина 1. Ноутбук уснул — и процесс вместе с ним
Когда ты закрываешь крышку, система усыпляет почти всё, включая твой процесс с ботом. Он не падает с ошибкой — он замирает. Сообщения копятся у Телеграма в очереди, а отвечать некому.
- Как проверить: открой крышку и подожди пару секунд. Бот «ожил» и разом ответил на накопившееся — значит, это твой случай.
- Как починить локально: запретить сон при закрытой крышке (на маке — настройки энергосбережения, на Windows — «действие при закрытии крышки»). Но это костыль: ноутбук нужен тебе самому, а не боту.
Причина 2. Закрыл терминал — убил процесс
Вторая версия той же истории: крышку не трогал, но закрыл окно терминала или нажал Ctrl+C. Для системы это команда «завершить процесс». Всё, что было запущено из этого окна, умирает вместе с ним.
- Как проверить: бот замолкает ровно в момент закрытия окна, без всякой паузы.
- Как починить локально: запускать процесс так, чтобы он пережил закрытие окна, — например, менеджером процессов вроде
pm2. Ноутбук всё ещё должен не спать — это лечит симптом, не болезнь.
Причина 3. Бесплатный хостинг усыпляет процесс
Ты уже задеплоил бота, а он всё равно молчит по ночам? Бесплатные тарифы хостингов экономят ресурсы: процесс без активности они останавливают, а будят только по входящему веб-запросу. Бот, который сам опрашивает Телеграм (long polling), после усыпления не проснётся — будить некому.
- Как проверить: в панели хостинга смотри логи и статус процесса — там будет «sleeping», «idle» или перезапуск после долгой паузы.
- Как починить: выбрать тариф или тип сервиса, где процесс работает постоянно (worker/background-процесс), либо перевести бота на вебхуки — о них ниже.
Настоящий фикс: переселить бота с ноутбука
Все три причины — одна болезнь: бот живёт на машине, которая не обязана работать круглосуточно. Лечение — деплой: переселить процесс на машину, которая не спит никогда. Три рабочих варианта, от простого к гибкому:
- Облачный хостинг с фоновым процессом. Railway, Render и похожие: подключаешь репозиторий, выбираешь тип «worker», хостинг сам запускает бота и перезапускает после сбоев. Самый короткий путь; где хостить бесплатно — отдельный разбор.
- Вебхуки вместо опроса. Перевернуть схему: не бот спрашивает Телеграм «есть новое?», а Телеграм сам стучится по твоему URL при каждом сообщении. Такому боту не нужен вечно живой процесс — код просыпается на каждое сообщение и засыпает обратно, это идеальная пара для serverless-хостинга.
- VPS — свой маленький сервер. Арендованная машина, которая всегда включена: полный контроль, помесячная плата, чуть больше ручной настройки. Хороший третий шаг, когда ботов станет несколько.
Начни с первого варианта: вечер — и твой бот отвечает в три ночи, пока ноутбук спит в рюкзаке.
Почему в туториалах об этом не пишут?
Туториал заканчивается на «бот ответил в чате» — и на ноутбуке автора это правда работает. Разница между «работает у меня в терминале» и «работает всегда» — это и есть деплой, отдельная тема, которую вводные гайды часто пропускают.
Держать бота на ноутбуке — вообще плохо?
Для разработки — отлично: запустил, потыкал, остановил. Плохо — только полагаться на это как на «продакшн»: любой сон, перезагрузка или обрыв Wi-Fi превращается в «бот молчит» для всех твоих пользователей.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





