LINUX.ORG.RU
ФорумAdmin

Что означает статус `active (exited)` в статусе сервиса?

 ,


0

1
systemctl status <service>

отдает

     Active: active (exited) since Wkd YYYY-MM-DD HH:MM:SS TMZ; N days ago

, а

systemctl cat <service>

отдает

...
[Service]
...
RemainAfterExit=yes
...

Если правильно читаю документацию, то фактически процесс завершен, но systemd считает процесс активным (в каких случаях столь противоречивое поведение полезно?).

Исходя из этого полагаю, что при настройке мониторинга статуса сервиса

active (exited)

законно будет означать сервиса неработоспособность.

Верно?

Перемещено hobbit из general

в каких случаях столь противоречивое поведение полезно?

Ничего противоречивого. Такое поведение полезно для зависящих юнитов (Requires=/Watns=) или просто нечему в фоне висеть.

ALiEN175
()
Ответ на: комментарий от ALiEN175

Таким образом есть какие-то сторонние процессы, которые работают лишь при работе обсуждаемого сервиса.

Если бы отображалось его фактическое состояние, то работоспособность зависимых сервисов страдала бы?

И в какой-то из конфигураций зависимых сервисов будет указано

Requires=<service>

или

Wants=<service>

?

То есть нужно просматривать конфигурации остальных сервисов на поиск того, какому сервису нужен обсуждаемый?

alekseipa5
() автор топика
Последнее исправление: alekseipa5 (всего исправлений: 1)

systemd считает процесс активным

Systemd сообщает, что процесс сделал свою работу и завершился корректно. Его больше не нужно дергать из каждого зависимого сервиса заново.

законно будет означать сервиса неработоспособность

Нет, конечно.

thesis ★★★★★
()
Ответ на: комментарий от alekseipa5

есть, например, юнит alsa-restore.service. У него прописана команда, которая должна отработать при запуске и команда, которая должна отработать при остановке. Если у него не будет «зависания», то вторая команда отработает сразу же, а не при выключении компа.

Или у когда есть несколько юнитов, которые должны управляться совместно — делается «пустой» юнит, через который можно управлять всей группой (PartOf, ReloadPropagatedFrom, …). Если такой управляющий юнит не будет «зависать», то для него не получится выполнить systemctl stop и придется тушить группу по одному

anonymous
()
Ответ на: комментарий от anonymous

Я приведу пример, потому что либо я совсем не понял функциональности инструмента, о котором Вы говорили, либо не понял, как он предполагается должным работать с конкретным сервисом.

Речь о Postfix.

На паре десятков серверов живость этого сервиса мониторится стандартно через active (running), и там проблем не возникает.

Здесь же остается этот самый active (exited).

Если правильно Вашу мысль понял: есть сервисы, которые отрабатывают свою функциональность и мгновенно отключаются, выполняя запланированные на отключение команды. Но Postfix не предполагается мгновенно отключать – он должен работать до тех пор, пока работает сервер.

Сам по себе Postfix не управляет какими-либо иными сервисами (вроде). Он просто живет и выполняет какие-то почтовые задачи. Однако живет в статусе active (exit).

Что я не понимаю? Или какой информации не хватает, чтобы копнуть глубже проблему?

alekseipa5
() автор топика
Ответ на: комментарий от alekseipa5

А еще нахожу, что у Postfix как минимум два юнита postfix.service и postfix@-.service .

Второй отдает адекватный статус работы. Всё это запутывает меня еще больше.

alekseipa5
() автор топика
Ответ на: комментарий от alekseipa5

Это не баг, а демьянщики так захотели, и сделали, потому что там любят велосипеды. А ты разбирайся теперь, почему юнит постфикса запускает /bin/true, который ты трудолюбиво мониторишь. И откуда берется template unit, и что это такое, и нахрена оно надо, и как теперь быть.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от anonymous

«в системде всё прозрачно и очевидно, в отличие от замшелых скриптов sysv» - говорили они…

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария