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

Ответ на: комментарий от 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

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

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