SystemdDoctor

Служба пользователя не запускается или не переживает выход

Службы пользователя живут в отдельном менеджере, который запускается вместе с сеансом и останавливается при выходе. Чтобы они работали без входа в систему, нужно разрешить задержку сеанса для пользователя.

Что это значит

Отличий от системных служб несколько: свои каталоги (~/.config/systemd/user), свои команды с ключом пользователя, недоступность параметров вроде User= и отрицательных приоритетов, и зависимость жизни от сеанса.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Служба останавливается при выходе из системы

    Менеджер пользователя завершается вместе с последним сеансом. Это поведение по умолчанию.

  2. Файл лежит не в том каталоге

    Службы пользователя ищутся в ~/.config/systemd/user, а не в /etc/systemd/system. Файл в системном каталоге менеджер пользователя не увидит.

  3. Используются параметры, недоступные службам пользователя

    Параметры смены пользователя, отрицательные приоритеты, часть возможностей и большинство ограничений ресурсов в менеджере пользователя недоступны.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Состояние службы в менеджере пользователя.

systemctl --user status myapp.service --no-pager | head -10

Разрешена ли работа без входа в систему.

loginctl show-user $USER -p Linger

Журнал службы пользователя: он отдельный.

journalctl --user -u myapp.service -n 30 --no-pager

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Служба останавливается при выходе из системы
Почему происходит
Менеджер пользователя завершается вместе с последним сеансом. Это поведение по умолчанию.
Как проверить
Посмотрите, разрешена ли задержка сеанса.
loginctl show-user $USER -p Linger
loginctl list-users
Как исправить
Разрешите задержку сеанса для пользователя: тогда его менеджер будет работать и без входа.
sudo loginctl enable-linger $USER
2. Файл лежит не в том каталоге
Почему происходит
Службы пользователя ищутся в ~/.config/systemd/user, а не в /etc/systemd/system. Файл в системном каталоге менеджер пользователя не увидит.
Как проверить
Посмотрите, что видит менеджер пользователя.
systemctl --user list-unit-files | grep myapp
ls -l ~/.config/systemd/user/
Как исправить
Перенесите файл в каталог пользователя и перечитайте конфигурацию с ключом пользователя.
systemctl --user daemon-reload && systemctl --user enable --now myapp.service
3. Используются параметры, недоступные службам пользователя
Почему происходит
Параметры смены пользователя, отрицательные приоритеты, часть возможностей и большинство ограничений ресурсов в менеджере пользователя недоступны.
Как проверить
Посмотрите сообщения при запуске.
systemctl --user status myapp.service --no-pager | head -10
journalctl --user -u myapp.service -n 30 --no-pager
Как исправить
Уберите недоступные параметры или переведите службу в системный менеджер, если ей нужны такие права.

Пример вывода

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

$ systemctl --user status myapp.service --no-pager | head -4
○ myapp.service - Моя служба
     Loaded: loaded (/home/user/.config/systemd/user/myapp.service; enabled)
     Active: inactive (dead)

$ loginctl show-user user -p Linger
Linger=no

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

Источники

  • user@.service(5)
    Менеджер пользователя и его каталоги.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • loginctl(1)
    Команда enable-linger.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Проверено: без задержки сеанса служба пользователя завершается при выходе.
    собственная проверка, systemd 255
    сверено 15 сентября 2026