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

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

У меня есть системная служба, которая выполняется для выбранных пользователей. Имя — serv@<uid>( <uid>— UID пользователя). Я хочу поделиться с этой службой ограничениями ресурсов пользователя (поместить ее в user-<uid>.slice), а также использовать его разрешения.

/etc/systemd/system/[email protected]

[Unit]
Description=My service for user %i

[Service]
Type=simple
ExecStart=/usr/local/bin/serv.sh
Restart=always
User=%i
Slice=user-%i.slice
SuccessExitStatus=0 255 SIGKILL SIGTERM

[Install]
WantedBy=multi-user.target

Когда пользователь выходит из системы, служба завершается с помощью SIGTERM. Почему служба не перезапускается? Как настроить так, чтобы служба не завершалась?

решение1

Для меня решением было loginctl enable-linger username. Без этого сервис бы прекратил работу, когда пользователь выходил из системы.https://wiki.archlinux.org/index.php/Systemd/User#Автоматический_запуск_экземпляров_пользователей_systemd

решение2

Вы можете изменить конфигурацию входа:

/etc/systemd/logind.conf

[Login]
KillUserProcesses=no

Это также изменяет поведение других служб и фоновых процессов (например screen, tmux). См.выпуск №3483;


Бегите systemctl restart systemd-logindпосле этого.

Связанный контент