インフラ・DevOps
Systemd Linger
Systemd Linger (etbe.coker.com.au)
要約
SystemdのLinger機能は、ユーザーがログアウトした際にそのユーザーのプロセスを終了させるかどうかを制御します。この機能は、特定の状況下でバックグラウンドプロセスを維持するために便利ですが、デフォルトでは無効になっており、ユーザープロセスはログアウト時に終了します。Lingerを有効にすると、ログイン前にWi-Fi接続や一部のデーモンが起動するようになり、利便性が向上することがあります。
全文翻訳
Systemd Linger
July 24, 2026July 24, 2026| etbeSystemd Linger| 0 Comment| 17:48 Categories : Linux
プロセスを終了させること
systemdの機能の中で最も議論を呼ぶのは、ユーザーがログアウトしたときにユーザープロセスを終了させるオプションです。当初はscreen/tmux/nohupプロセスも終了させていました。
最近のDebianリリースでは、systemd-logind(systemdのログインマネージャー)のデフォルト設定は、プロセスを実行し続けることを許可するようになっています。設定ファイル/etc/systemd/logind.confには、ユーザープロセスを終了させるようにするために有効化できるKillUserProcessesというオプションがあります。それを有効にした場合、特定のユーザーのプロセスのみを終了させたり、一部のユーザーを除外したりするオプションがあります(デフォルトではrootは除外されます)。
そのオプションを使用する場合、systemdユニットを使ってscreenを起動し、ログアウト時に終了しないようにすることができるようです。これは、特定のユーザーケースにとって非常に便利な機能です。
ある状況では、コンピューターの操作にあまり慣れていない人々をKDEを実行しているシステムでサポートしていましたが、一部のKDEプロセスが残ってしまうことがありました。そのため、akonadiやその他のKDEサービスが誤動作した場合に、ログアウトして再度ログインして対処するという方法が機能しませんでした。そのシステムでは、ユーザープロセスを終了させるオプションを有効にしたところ、再起動を必要とせずに問題が減少しました。
「linger」機能は、screen/tmux/nohupを機能させるために必要であると広く信じられていますが、Debian(そしておそらくほとんどのディストリビューション)ではそうではありません。一部の設定の組み合わせでscreen/tmuxを機能させるために「linger」が必要になるかもしれませんが、それを見つけ出すことには興味がありません。
Linuxデスクトップ利用で直接サポートしてきた人々(数百人にのぼる)の中で、screen/tmuxを使用でき、かつ私がログアウト時にプロセスを自動的に終了させたくなるような無知さを持つ人はいませんでした。
Lingerの制御
polkitがインストールされており、一般的な設定であれば、以下のコマンドで自分のアカウントの「linger」を有効または無効にできます。
loginctl enable-linger
loginctl disable-linger
rootとして実行している場合、以下のコマンドで他のユーザーの「linger」を有効または無効にできます。
loginctl enable-linger $ACCOUNT
loginctl disable-linger $ACCOUNT
アカウントにlingerが有効になっているかどうかを確認したり、有効になっているアカウントを一覧表示したりする文書化された方法は見当たらないようです。「ls /var/lib/systemd/linger」が唯一の選択肢のようです。
DebianでのLinger
ほぼデフォルト設定のDebianシステムでは、プロセスはログアウト時に終了しません。そして、「linger」がもたらす唯一の違いは、ユーザーがログインする前に、ユーザーのコンテキストでプログラムを起動することです。
最近、友人が私のサーバーの1つで多くのLLMプログラムをテストしていましたが、そのために使用したアカウントは「linger」が有効になっていました。おそらく、彼が実行したインストールスクリプトの1つは、nohupを機能させるためにlingerを有効にすることが必要であるという前提で書かれており、尋ねられることなく自動的にそうしました。
この動作から見出した一つの利点は、私のラップトップにあります。現在、ラップトップで新しいSE Linuxポリシーをテストしており、頻繁に再起動しています。自分のアカウントでlingerを有効にしたところ、ラップトップはログインせずに起動時にWi-Fiに接続するようになり、便利です。X11/Waylandのログイン設定が壊れている場合でも、それにSSH接続できます。これらのテストが終わった後も、有効にしたままにしておくつもりです。
PipewireやBluetoothのようなバックグラウンドプロセスがログイン前に起動することで、ログイン時に物事が少し速くなることが期待できます。
関連記事:
Systemd Notes
数ヶ月前、systemdについての講義を行いました...
Ethernet Interface Naming With Systemd
Systemdはイーサネットインターフェイスの名前を指定する新しい方法を持っています...
Systemd, Mobile Linux, and Containers
私は、自分の欲しいアプリをモバイルLinuxやコンテナで実行するのにいくつかの問題がありました...
systemd – initなどの代替
systemdプロジェクトは、initを置き換えるための興味深いコンセプトです...
Systemd Hardening and Sending Mail
systemdの機能の一つは、削減する能力です...
返信を残す
コメントを投稿するにはログインする必要があります。
関連投稿
PSI and Cgroup2
January 12, 2021 January 12, 2021 | etbe PSI and Cgroup2 | 1 Comment | 16:50
Load Average Monitoring [1] に関する私の投稿のコメントで、匿名の人物が推奨しました [...]
もっと見る
もっと見る
systemd-nspawn and Private Networking
December 9, 2019 December 9, 2019 | etbe systemd-nspawn and Private Networking | 4 Comments | 12:10
現在、PCで同時に2つのことをしたいと思っています。[...]
もっと見る
もっと見る
QEMU for ARM Processes
August 1, 2017 August 1, 2017 | etbe QEMU for ARM Processes | 2 Comments | 17:13
現在、ARMシステムで組み込み作業を行っています。仮想ARM環境を持つことは [...]
もっと見る
もっと見る