ユーザーがログアウトするとシャットダウンされ、実行中のシステムサービス

ユーザーがログアウトするとシャットダウンされ、実行中のシステムサービス

選択したユーザーに対して実行されるシステムサービスがあります。名前は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#Automatic_start-up_of_systemd_user_instances

答え2

ログイン設定を変更できます。

/etc/systemd/logind.conf

[Login]
KillUserProcesses=no

これにより、他のサービスやバックグラウンドプロセス(たとえばscreentmuxの動作も変わります。バラより問題 #3483;


その後実行してくださいsystemctl restart systemd-logind

関連情報