Oneshot и RemainAfterExit: active может означать завершённую настройку

Запросить

Фотография конкретного исполнения не приложена.

Однократная служба подходит для действия, которое заканчивается после выполнения команды. Для Type=oneshot systemd дожидается завершения запускаемой последовательности. Это отличается от длительно работающего демона, жизненный цикл которого связан с продолжающим существовать процессом.

RemainAfterExit позволяет считать unit активным после выхода всех процессов. Такое состояние полезно, если unit представляет установленную настройку с предусмотренным обратным действием при остановке. Оно не доказывает наличие живого обработчика, а также не подтверждает, что внешняя среда с тех пор сохранила нужное состояние.

Без RemainAfterExit успешно выполненный oneshot обычно переходит из активации непосредственно к неактивному состоянию; отсутствие active после исполнения само по себе не является ошибкой. Напротив, оставшийся active unit не обязан повторять исходную команду на каждом обращении start. Для повторяемого задания заранее определяют способ завершения и следующей активации.

В эксплуатационной инструкции разделяют результат последнего действия, текущее состояние настройки и наличие процесса. На стенде проверяют первый запуск, повторный start, stop и новый запуск, а также ошибку одного из шагов. Это особенно важно для обслуживающих процедур: строка active/exited в интерфейсе не должна становиться единственным доказательством успешного резервного копирования или сохранности созданных файлов.

Основание — Official systemd manual edition262, cited sections only, разделы systemd.service Type=oneshot; RemainAfterExit. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Материал относится к справочникам systemd 262. Установленные Linux-дистрибутив, сборка systemd и возможности ядра не проверялись; изменения служб и настроек не выполнялись.

Все разборы