systemd --userサービスは正常に終了しますか?

systemd --userサービスは正常に終了しますか?

私のユーザーアカウントにログインすると、systemdを使用して一部のサービスが開始されます。たとえば、次のようになります。

systemctl --user enable foo.service

しかし、私は通常Xセッションを突然終了します。つまり、電源ボタンを押してシステムを直接起動します(最小デスクトップ環境があります)。 SystemdはXを殺し、すべての子プロセスを墓に送ります。

--userこの場合、システムはfooサービスを正常に終了しますか?

ベストアンサー1

systemd --userというシステムサービスとして実行されます[email protected]。テンプレートサービスです。あなたのインスタンスはです[email protected]。数字はあなたのユーザーID(id -u)です。

システム終了ルーチンは[email protected]通常の信号を使用して停止信号を送信しますSIGTERM。これに応答して、systemd --userプロセスは各ユーザにサービスが停止したことを知らせる。 [*]

systemctl cat [email protected]ユーザーサービスのタイムアウト(猶予期間)を120秒以上に設定することはあまり意味がないことをお勧めします。その後、すべてのユーザーサービスはSIGKILLメインシステム(PID 1)で受信されます。 SIGKILLすぐに致命的です。

このファイルの設定については、man systemd.killおよびを参照してくださいman systemd.service


[*]技術的には、systemd --user応答はSIGTERMユーザーのデバイスを有効にすることですexit.target。これはで言及されましたman systemd。詳しくはexit.target:-)systemctl cat exit.target確認してもらいますman systemd.special

おすすめ記事