Что вы изучите
- Как подготовить окружение: Go 1.22 (релиз 2025), systemd 252+ (2025) и минимальные требования.
- Как написать простой daemon на Go с корректной обработкой SIGTERM и graceful shutdown.
- Как оформить systemd unit: сервис, Restart, лимиты памяти/ЦП, журналы.
- Как тестировать остановку сервиса и отлаживать зависшие горутины.
- Практические примеры команд для сборки, установки и отладки (journalctl, systemctl).
Требования
- Go 1.22 (релиз 2025). Минимум 200 МБ свободного места для SDK; бинарник обычно 2–8 МБ в статической сборке.
- systemd 252 или новее (релизы 2025–2026). Поддерживается на Ubuntu 24.04/26.04, Debian 12/13, CentOS Stream с systemd современного релиза.
- ОС: Linux x86_64; специальная сборка для ARM64 показана в комментариях.
- Минимальные ресурсы для демона: 64 МБ ОЗУ, 1 vCPU; рекомендуемые для теста: 256 МБ ОЗУ и 1–2 vCPU.
- Порты: пример использует HTTP на порту 8080 и systemd unit без NetworkTarget dependency по умолчанию.
Зачем systemd для Go?
systemd обеспечивает управление жизненным циклом процессов: автозапуск при загрузке, рестарт при падении, контроль ресурсов и интеграция с журналом (journald). Для Go-сервисов это значит: простая конфигурация перезапуска, ограничение памяти/ЦП и централизованный лог. В 2025–2026 годах systemd остаётся стандартом для продакшн Linux-серверов, поэтому знание правильного unit-файла и работы с SIGTERM критично для безопасного развёртывания.
Комментарии (0)
Войдите или зарегистрируйтесь, чтобы оставить комментарий
Загрузка комментариев…