第2章 logind
logind (または具体的には systemd-logind)は、ユーザーログインを管理するシステムサービスです。このサービスは以下を行います。
- ユーザーおよびセッション、それらのセッションおよびアイドル状態の追跡
- ユーザープロセスの制御グループの作成
- システムのシャットダウンまたはスリープなどの操作のために PolicyKit ベースのアクセスをユーザーに提供
- アプリケーション用にシャットダウン/スリープを抑止するロジックの実装
- 電源/スリープハードウェアキーの処理
- 複数のユーザー用のマルチシート管理、セッション切り替え管理、およびデバイスアクセス管理
- 仮想端末 (コンソール) のアクティブ化時のテキストログイン (getty) の自動起動およびユーザーランタイムディレクトリーの管理
logind サービスは、Red Hat Enterprise Linux 7 の新しい初期化システムである systemd と密接に統合されており、Red Hat Enterprise Linux 6 の upstart 初期化システムに置き換わります。この変更により、数多くの新機能が導入されました。以下は、これらの内のとりわけ大きな変更点の要約です。
- ConsoleKit
ConsoleKitフレームワークは、Red Hat Enterprise Linux 7 では非推奨になりました。同等の機能はsystemdによって提供されるようになりました。ConsoleKitとlogindはいずれも、現在実行中のユーザーセッションを追跡するサービスです。注記ConsoleKitには、システム上のアクティブなセッションが変更されたときにいつでも任意のシェルスクリプトを実行する機能がありました(仮想端末の切り替えを使用)。この機能は提供されなくなりました。- /var/log/ConsoleKit/history ファイル
- 以前のバージョンでは、
ConsoleKitはログファイルを/var/log/ConsoleKit/historyに送信していましたが、現在logindはサポートしませんでした。このファイルは、システム上のすべてのログインとログアウトを追跡する従来のwtmpファイルおよびutmpファイルに置き換えられました。/var/log/ConsoleKit/historyは、異なる形式のwtmpファイルと同様の情報を提供していました。機能的に重複しているため、logindはwtmpファイルのロールのみを採用しています。 - seat.d スクリプト
ConsoleKitは使用されなくなったため、seat.dスクリプトはConsoleKitフレームワークを補完しなくなり、systemd-logindに置き換えられました。- ck-list-sessions コマンド
ConsoleKitは、通常のユーザーだけでなく、GDMによる GUI アクセスも含む、最近のユーザーに関する詳細情報を返す ck-list-sessions コマンドを提供していました。比較可能な結果には、loginctlコマンドを実行してアクセスできるようになりました。loginctl list-sessions
$ loginctl list-sessionsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - マルチシートサポート
logindとGDMとともに、ユーザーが別のモニター、マウス、またはキーボードをマシンにアタッチできる マルチシート 機能が提供されます。これを実行すると、追加のログイン画面が表示され、ユーザーは別のマシンを使用しているかのようにログインできます。システム上で利用可能なシートをリスト表示するには、以下のコマンドを実行します。loginctl list-seats
$ loginctl list-seatsCopy to Clipboard Copied! Toggle word wrap Toggle overflow システム上で特定のシートのステータスを表示するには、以下のコマンドを実行します。loginctl seat-status seat
$ loginctl seat-status seatCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、seat はシートの名前です(例:seat0)。特定のハードウェアを特定のシートに割り当てるには、以下のコマンドを実行します。loginctl attach seat device
# loginctl attach seat deviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、seat はシートの名前になります(例:seat1)。device は、/sys/devices/pci0000:00/0000:00:02.0/drm/card0 などの /sys デバイスパスで指定されたデバイス名です。割り当てを変更するには、ハードウェアを別のシートに割り当てるか、loginctl flush-devices コマンドを使用します。
詳細情報の入手
systemd-
logind.service(8)- logind の man ページは、logind の使用方法と機能に関する詳細情報を提供します。また、systemd-logind が提供する API (ログイン D-Bus API ドキュメント)にも対応しています。
logind.conf(5):
logind.conf の man ページでは、ログインマネージャー設定ファイルについて説明しています。
loginctl(1):
systemd ログインマネージャーの man ページには、マルチシート機能の詳細情報が含まれています。