Настройка автозапуска приложений через systemd (Linux)
Бот или приложение запущено в screen и падает после перезагрузки? Оформим его в службу systemd с автозапуском и журналом.
- Автоперезапуск
Restart=always поднимает упавший процесс сам.
- Старт с сервером
Приложение запускается после перезагрузки.
- Журнал
Логи в journalctl с поиском и фильтрами.
- Изоляция
Свой пользователь и лимиты ресурсов для службы.
Сколько стоит
Этапы работы
- 01Аудит
Изучаем текущую инфраструктуру и код, находим риски и узкие места. Бесплатно.
- 02Проектирование
Предлагаем архитектуру, фиксируем сроки, бюджет и критерии готовности.
- 03Внедрение
Разрабатываем и настраиваем, покрываем тестами, передаём документацию.
- 04Поддержка
Мониторинг, реакция на инциденты по SLA и развитие системы.
Бот упал ночью — и никто не заметил
Частая история: бот или приложение запущены в консоли через screen или tmux. После перезагрузки сервера или первой же ошибки процесс исчезает, а узнают об этом от клиентов. Решение — оформить приложение в службу (daemon) systemd.
Что настраиваем
Unit-файлы
Описываем, как запускать приложение, от какого пользователя, с какими переменными окружения и после каких служб.
Автоперезапуск
Restart=always и пауза между попытками: упавший процесс поднимается сам, а причина падения остаётся в журнале.
Логи и управление
systemctl для управления, journalctl для логов — без самописных файлов и потерянных сообщений об ошибках.
| Команда | Что делает |
|---|---|
| systemctl start | Запустить службу |
| systemctl enable | Включить автозапуск |
| systemctl status | Состояние и PID |
| journalctl -u | Логи службы |
Смотрите также: скрипты Bash, Telegram-боты, Docker. Весь раздел — администрирование серверов.
Частые вопросы
Чем служба systemd лучше запуска в screen или tmux?
Служба стартует сама после перезагрузки, перезапускается при падении и пишет логи в журнал. Процесс в screen просто исчезнет вместе с сессией или сервером.
Что такое Restart=always?
Настройка unit-файла: если процесс завершился, systemd запускает его снова через заданную паузу.
Как посмотреть логи службы?
Командой journalctl: с фильтром по службе, времени и уровню ошибок.
Подойдёт ли это для бота на Python или Node.js?
Да, это самый частый случай: бот получает автозапуск, перезапуск при сбое и нормальные логи.
Можно ли ограничить ресурсы службы?
Да: память, процессор и доступ к файлам задаются в unit-файле — сбойный процесс не положит весь сервер.
Расскажите, что нужно сделать
Оставьте контакты или напишите в мессенджер: разберём задачу и предложим решение.
Телефон для связи8 (967) 858-85-55