SystemdDoctor
RemainAfterExit= [Service]

RemainAfterExit=: служба остаётся активной после завершения

Заставляет systemd считать службу активной даже после того, как её процессы завершились. Используется для разовых задач и для описания состояний, а не работающих программ.

Что делает

Смысл в том, чтобы отличать «задача выполнена» от «задача не выполнялась». Без параметра одноразовая служба после отработки уходит в состояние inactive (dead), и по нему нельзя понять, была ли она вообще запущена. С параметром состояние становится active (exited) — то есть выполнено и действует.

Обратная сторона: активную службу нельзя запустить повторно, пока она не остановлена. Поэтому для задач, вызываемых таймером или наблюдателем за путём, этот параметр вреден: второе срабатывание ничего не сделает.

Где ставится. В секции [Service], обычно вместе с Type=oneshot.

Значения

ЗначениеЧто происходит
yesслужба остаётся в состоянии active (exited) после завершения процессов.
noпо умолчанию: после завершения служба неактивна.

По умолчанию: no

Пример

Разовая настройка системы, которая должна считаться применённой.

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/sysctl --system
ExecStop=/usr/local/bin/revert-sysctl.sh

Пара «применить и откатить» — типичный случай для этого параметра: запуск включает состояние, остановка его снимает.

Типичные ошибки

Для задач по таймеру параметр мешает: активную службу таймер повторно не запустит.

Мониторинг, который проверяет «служба active», при этом параметре всегда получает успех — даже если задача внутри падала. Проверять надо результат, а не состояние.

Вместе с Restart=always параметр приводит к странному поведению: перезапускать нечего, а состояние остаётся активным.

Связанные ошибки

Рядом стоящие параметры

Где важен на практике

Источники

  • systemd.service(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026