Выбор ответа Senior systemd и журналы обновлено

Демон под Type=simple

Вопрос

Старый демон при запуске форкается в фон и родитель сразу выходит. В юните Type=simple. Что увидим?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Родитель вышел, и systemd сочтёт сервис завершённым. При Type=simple главный процесс это запущенный из ExecStart.

Варианты ответа

  1. Родитель вышел, и systemd сочтёт сервис завершённымправильный ответ
  2. Всё работает идеально, тип запуска здесь не важен
  3. systemd автоматически переключит тип на forking
  4. Сервис не запустится из-за ошибки синтаксиса юнита

Разбор

При Type=simple главный процесс это запущенный из ExecStart. Он вышел, значит сервис «отработал»: в зависимости от RemainAfterExit юнит становится inactive, а оставшиеся процессы cgroup systemd по умолчанию добивает. Правильно: запускать демон на переднем плане (часто флаг -f/--foreground) или указать Type=forking и PIDFile. Автопереключения типа нет, синтаксис корректен.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.