systemd Linux с systemd (конкретный дистрибутив и версия могут отличаться)

User-служба не запускается после выхода пользователя

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

Пользовательская служба systemd работает во время входа в графический или SSH-сеанс, но исчезает после выхода последнего сеанса владельца.

В этой статье
  1. Как распознать проблему и где применимы действия
  2. Возможные причины и диагностические признаки
  3. Пошаговая диагностика и исправление
  4. Как проверить, что проблема действительно устранена
  5. Если результат не получен

#Как распознать проблему и где применимы действия

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

#Возможные причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Не включено сохранение пользовательского менеджераloginctl показывает Linger=noПроверить допустимость включения lingering
Сервис не включён в user-менеджереUnit активен только после ручного запускаВключить --user для подходящего юнита
Задача зависит от сеанса или GUIDISPLAY, XDG_SESSION_ID и D-Bus сеанса исчезают после выходаНе переводить настольное приложение в фон без учёта ограничений

#Пошаговая диагностика и исправление

  1. Шаг 1. Убедитесь, что это user-unitЗайдите под владельцем службы, не под root. Команда --user обращается к личному менеджеру; обычный systemctl без --user диагностирует совсем другой объект.
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    systemctl --user list-unit-files '*.service' | head -n 35
  1. Шаг 2. Проверьте сервис без завершения сессииЗамените имя службы и запишите Enabled/ActiveState. Если user-менеджер недоступен по SSH, проверьте наличие корректного пользовательского сеанса; не запускайте systemctl --user через sudo.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    UNIT='имя.service'; systemctl --user status "$UNIT" --no-pager
  1. Шаг 3. Посмотрите состояние lingeringКоманда покажет поле Linger. no объясняет, почему пользовательский менеджер может остановиться после последнего выхода; это не доказывает, что любая служба безопасна для фоновой работы.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    loginctl show-user "$(id -un)" -p Linger -p State
  1. Шаг 4. Проверьте зависимость от графической сессииПрочитайте unit: привязка к graphical-session.target либо использование DISPLAY может сделать постоянную работу невозможной. Данные приложений с открытыми файлами сохраните заранее.
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    UNIT='имя.service'; systemctl --user cat "$UNIT"
  1. Шаг 5. Включите user-службу в личном менеджереПосле согласования потребления ресурсов и режима работы включите службу. Эта команда доступна текущему владельцу и не должна выполняться от root.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)С осторожностью
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    UNIT='имя.service'; systemctl --user enable --now "$UNIT"

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. Шаг 6. Разрешите менеджеру жить без входаИспользуйте только для фонового процесса, не требующего активного рабочего стола. При обычных правах loginctl enable-linger для себя может работать; в управляемой системе администратор должен разрешить это действие.
    Linux · Терминал (Bash)С осторожностью
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    loginctl enable-linger "$(id -un)"
    loginctl show-user "$(id -un)" -p Linger

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

#Как проверить, что проблема действительно устранена

Выйдите из всех сеансов владельца, затем снова войдите и посмотрите journalctl --user -u ИМЯ.service. Если lingering не нужен, отключите loginctl disable-linger ИМЯ_ПОЛЬЗОВАТЕЛЯ, но прежде остановите рабочие задачи.

#Если результат не получен

Вернитесь к самому раннему отличающемуся результату диагностики и проверьте точный текст ошибки, текущую загрузку и фактическую версию программы. Не повторяйте опасную команду с другими правами наугад. Если это рабочий сервер, передайте администратору обезличенные отрывки журнала за момент сбоя и уже выполненные действия.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.