「D-Bus」の版間の差分
(序文を更新) |
(→ヒントとテクニック: 同期) |
||
39行目: | 39行目: | ||
同じ既知なバス名を提供するサービスが複数インストールされている場合、これを使用して特定のサービスを常に使用することができます。 |
同じ既知なバス名を提供するサービスが複数インストールされている場合、これを使用して特定のサービスを常に使用することができます。 |
||
+ | |||
+ | たとえば、[[KDE Wallet#D-Bus の自動アクティベーション]] を参照してください。 |
||
== デバッグ == |
== デバッグ == |
2024年1月15日 (月) 03:52時点における版
D-Bus はプロセス間のやりとりを行うためのメッセージバスシステムです。システム全体とユーザーセッション両方で実行できるデーモンと、アプリケーションが D-Bus を使うためのライブラリのセットから構成されています。
dbus と、さらに重要な dbus-units は systemd の依存としてプルされ、インストールされます。システムレベルのバスとユーザーセッションのバスが (systemd/ユーザー 経由で) 各ユーザーごとに 自動的に 起動されます。これらは dbus.socket
という個別のシステムソケットとユーザーソケットによって起動されます。サービスファイルを明示的に有効にしたり、自動起動させたりすることはできませんし、すべきではありません。
実装
Arch は 2 つの D-Bus メッセージブローカー実装を提供します。最初に、ユーザーは、systemd パッケージのインストール中に、目的の dbus-units プロバイダーを選択するよう求められます。一度にインストールできる実装は 1 つだけです。これにより、自動開始される dbus 実装となるユニットファイルが提供されます。
新しいデフォルトの dbus-broker-units または dbus-daemon-units パッケージは、ソケットによって開始される dbus.service
システムファイルとユーザーユニットファイルを提供します。それぞれの実装の dbus-broker.service
または dbus.service
ファイルへのシンボリックリンクになっています。systemd ユニットパッケージには、依存関係として、使用される実際の実装、つまり dbus-broker や dbus が必要です。これらは、シンボリックリンクのターゲットである dbus-broker.service
または dbus.service
ファイルも提供します。
dbus パッケージは現在でも systemd によって明示的に必要とされており、dbus-broker は dbus 自体を提供しません。 ただし、どちらのパッケージも独自に自動起動されず、dbus-units のプロバイダーは 1 つしかインストールできないので、両方のデーモンパッケージがインストールされていても問題ありません dbus パッケージは、dbus-broker が現在提供していない診断目的で使用されるコマンドラインユーティリティにも役立つ場合があります。
dbus-broker
dbus-broker は現在 Arch のデフォルト実装です [1] [2] これは リファレンス実装 のドロップインの置き換えで、D-Bus リファレンス実装との互換性を維持しつつ、高い性能と信頼性を提供する ことを目的としています。
dbus-units プロバイダーを求められたら、dbus-broker-units を選択するか、直接インストールして下さい。
リファレンス実装
The reference implementation は現在も Arch によって正式にサポートされています。
dbus-units プロバイダを要求されたら dbus-daemon-units を選択するか、直接インストールしてください。
ヒントとテクニック
dbus サービスを上書きする
$XDG_DATA_HOME/dbus-1/services
にある dbus のサービスを上書きすることができます。
サービスがすでに起動されている場合、上書きは機能しません。既存のサービスのプロセスを強制終了するか、サービスを早めに起動する必要があります。
同じ既知なバス名を提供するサービスが複数インストールされている場合、これを使用して特定のサービスを常に使用することができます。
たとえば、KDE Wallet#D-Bus の自動アクティベーション を参照してください。
デバッグ
- D-Spy — 使いやすい GUI の D-Bus デバッガーツール。D-Spy を使用すると、実行中のプログラムの D-Bus インターフェイスを検査し、それらのインターフェイスでメソッドを呼び出すことができます。
- QDbusViewer — GUID-Bus デバッガー、D-Bus サービスを検査し、それらのメソッドを呼び出すために使用できます。
busctl(1) から systemd を使用することもできます