Вопрос с собеседования · DevOps

Как управлять сервисом через systemd и смотреть его логи?

JuniorLinux и диагностика
Ещё спрашивают так:
  • Как сделать, чтобы сервис перезапускался после падения?
Коротко

systemd — система инициализации и менеджер сервисов. Сервис описывают unit-файлом (/etc/systemd/system/app.service): команда запуска, пользователь, перезапуск (Restart=on-failure), зависимости, лимиты. Управление: systemctl start|stop|restart|status|enable. Логи: journalctl -u app -f.

  • enable — запуск при загрузке, start — сейчас
  • После изменения unit-файла — systemctl daemon-reload
  • journalctl --since "1 hour ago", -p err — фильтры по времени и уровню

А ещё В контейнерных средах эту роль играет оркестратор, а systemd остаётся на хостах

Подробно

Ключевые параметры:

  • User — не запускать сервисы от root;
  • Restart=on-failure, RestartSec — автоматический перезапуск;
  • LimitNOFILE — лимит открытых файлов (частая причина «Too many open files» под нагрузкой);
  • TimeoutStopSec — сколько ждать после SIGTERM до SIGKILL;
  • After/Requires — порядок и зависимости.

Диагностика: systemctl status app (последние строки лога и код выхода), journalctl -u app -n 200, systemctl list-units --failed.

Таймеры systemd — альтернатива cron с логированием и зависимостями.

Пример

[Unit]
Description=Orders API
After=network-online.target

[Service]
User=orders
ExecStart=/opt/orders/bin/server
Restart=on-failure
RestartSec=5
Environment=APP_ENV=prod
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Что хотят услышать

  • Unit-файл и основные параметры.
  • Команды управления и логи.
  • Перезапуск и лимиты.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Unit-файл, управление через systemctl (enable — автозапуск при загрузке), логи — journalctl -u
  • ✗Unit-файл, управление через systemctl (enable — запуск сейчас, start — при загрузке), логи — /var/log
  • ✗После правки unit-файла перечитывать конфигурацию не нужно
  • ✗Логи сервиса systemd смотрят только в /var/log/app.log

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования