タグ付けされた質問 「d-bus」

メッセージバスシステム、プロセス間通信の簡単な方法。また、プロセスのライフサイクルの調整にも役立ちます。

4
利用可能なDBusサービスのリスト
利用可能なDBusサービスのリストなどはありますか? 私はいくつかに出会いました(NetworkManager、Rhythmbox、Skype、HALが提供するものなど)。 提供されるサービス/インターフェースのかなり完全なリストを見つけることができるかどうか疑問に思います。
65 linux  d-bus  ipc 

1
X、Xorg、D-Bus:違いは何ですか?
GUIプログラミングで特定のことを行う方法を学習する過程で(たとえば、アプリケーション用に画面上のスペースを予約する)、通常はLinux上のX11であるWindow Managerについてさらに学習する必要があります(ディストリビューションがあるかどうかもわかりません) 、X11以外のものを使用しますが、まだ実装されていないWaylandについて聞いたことがあります。) 私はプログラミングを始めたばかりで、いらいらします。だから私はそれに飛び込んでいます。今、私はICCCMを読んでいます。もっと学びたいと思っています。ただし、このドキュメントは、私よりも(方法)を知っている大衆を対象としています。それで、私はいくつかの情報に出くわしました、そして、私はいくつかの説明を得たいです。 ICCCM引用のセクション2: 通常、所有者と要求者の間で転送されるすべてのデータは、Xバージョン11環境のサーバーを経由する必要があることに注意してください。クライアントは、別のクライアントが同じファイルを開いたり、直接通信したりできるとは想定できません。他のクライアントは、完全に異なるネットワークメカニズムを使用してサーバーと通信している場合があります(たとえば、1つのクライアントがDECnetと他のTCP / IPである場合があります)。したがって、データへの間接参照(ファイル名、ホスト名、ポート番号など)の受け渡しは、両方のクライアントが明確に同意した場合にのみ許可されます。 私の知る限り、X Window ManagerはTop of X Server上に構築されています(Wikipediaに感謝します)。上記の引用文では、クライアントはDECnetまたはTCP / IPを使用してサーバーと通信できると述べています。これまでのところ、「サーバー」はスピーチの図だと思っていましたが、今は疑問に思っています。Xサーバーは「Webサーバー」のようなサーバーですか。その機能/定義をどのように理解すればよいですか? 次に、X11、Xorg、X Server、X Window Manager、またはその両方への参照がしばしばあります。紛らわしい:X11はXorgとX Window Managerを含むバンドルですか?もしそうなら、このX11バンドルには他に何かありますか? Xは、マウスやキーボード、またはその他の種類の入力も必要です。Xサーバーの機能のこの部分もありますか?X Window Managerはディスプレイのみを厳密に監視していますか? 最後に、上記の引用では、クライアントが互いに通信しているかどうかについても言及しています。これは、学習目的で少し使用したD-Busを思い出しました。D-Busでは、ウィンドウイベントをトリガーすることもできます。それは、プログラムがどのように相互に通信するべきかに関して少し混乱させられます:* X Serverを使用して、またはD-Busを使用して相互作用するプログラムの違いは何ですか?* この情報がなんとなくあいまいなままであるのは残念ですが、学ぶのが難しくなりますが、これに少し光を当てることができれば幸いです:)ありがとう。

2
/ etc / machine-idを変更しても大丈夫ですか?
ディスク(SSD)を複製し、複製したディスクを別のマシンに配置しました。現在、両方のシステムはで同じ値を持っています/etc/machine-id。/etc/machine-id値を変更するために単に編集するのは問題ですか?システムの実行中にこれを実行できますか(またはライブUSBから起動する必要がありますか)? でsystemd-machine-id-setupより良い代替手段は? の単純な使用はsystemd-machine-id-setup機能しません。私はこれらの手順を試しました: nano /etc/machine-id (to remove the existing value) systemd-machine-id-setup > Initializing machine ID from D-Bus machine ID. cat /etc/machine-id 新しい値は古い値と同じです。
33 systemd  d-bus 

5
dbus:[システム]サービス 'org.freedesktop.login1'のアクティブ化に失敗しました:タイムアウトしました
サーバーのいずれかのsyslogに次のエラーメッセージが表示され続けます。 # tail /var/log/syslog Oct 29 13:48:40 myserver dbus[19617]: [system] Failed to activate service 'org.freedesktop.login1': timed out Oct 29 13:48:40 myserver dbus[19617]: [system] Activating via systemd: service name='org.freedesktop.login1' unit='dbus-org.freedesktop.login1.service' Oct 29 13:49:05 myserver dbus[19617]: [system] Failed to activate service 'org.freedesktop.login1': timed out Oct 29 13:49:05 myserver dbus[19617]: [system] Activating via …
25 linux  debian  d-bus  proftpd 

3
ドキュメント:Linuxセッションのアーキテクチャ
私は、最新のLinuxセッションに関係するデーモンとサービスのスタックを説明する優れた概要ドキュメントを探しています。dbus、およびに関するさまざまなドキュメントを読みましたsystemdが、全体像はまだわかりません。 特に、私はこれらの質問への回答を探しています(質問に答えないでください、彼らは私が探しているどんな種類のドキュメントを明確にするべきです): ログインした後、ユーザーのセッションのルートはどのプロセスですか? どのプロセスを開始する必要があり、なぜですか?Gnome、KDE、FVWM、または単純なシェルのいずれが起動されているかにかかわらず、デスクトップに依存しない回答を探しています。 これらすべてのデーモンはどのような役割を果たしますか?どれが単独で実行され、どれが他に依存しますか?誰が、誰が、どのくらいの期間開始する必要がありますか?そして、誰がその動物園を維持すべきですか? 私は右の起動後に実行しているデーモンの全体の動物園を持っていることがわかったので、私は、求めています:systemd-journald、systemd-udevd、dbus-daemon、 systemd-logind。しかし、十分ではない:これらとは別に、超軽量PDFビューアを実行すると、zathura さらにと私のセッションを移入しdbus-launch、 dbus-daemon、at-spi2-registryd、そしてat-spi-bus-launcher、後者の打ち上げさらに別のdbus-daemon。それらのどれも以前にそこにいなかったし、誰も招待されていないが、彼らは家の周りにとどまり、ログアウトするまで気味が悪い。私はここに何かが欠けていると確信しています... 別の例:ログイン後systemd、ユーザーUIDで実行していますが、それが何をすべきかわかりません(バージョン206をセッションマネージャーとして使用するはずがないと思いますか?)。子プロセス(sd-pam)がありますが、ドキュメントを見つけることができませんでした。 彼らは何をしますか?このセットアップの背後にあるアイデアは何ですか? 私の視点を明確にする:「昔」で、それは知っているのに十分だった login(私のログインシェルを起動しますbash実行、~/.profile)、およびその時点から、私は、セッションを構築する状況に応じて、多分起動し続けることができscreen、またはstartx。

1
ログインセッション全体でD-Busセッションを再利用する
複数のログインセッションを通じてマシンにアクセスします。セッションの存続期間は重複する場合と重複しない場合があります。私の場合、これらのログインセッションは現在SSHを介して常に行われていますが、ローカルセッションも処理したいです。 これらのセッションでD-Busが必要になることがありますが、GVFSを使用するために、これらのログインセッションで同じD-Busセッションを共有したいです。 これを行うための推奨される方法は何ですか?気付いていないかもしれないD-Busの使用を中断したくありません。私は使用を検討しました export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id)) しかし(Ubuntu 12.04の時点で)これは正しくないようです: これにはXセッションが必要ですが、私のSSHセッションはXディスプレイを転送する場合と転送しない場合があり$DISPLAYます。 Xディスプレイが利用できない場合dbus-launch、「自動起動エラー:X11初期化に失敗しました。」と文句を言い、デーモンを起動しません。 dbus-launch「というmanページ状態--autolaunchオプションは、内部実装の詳細と考えられています(...)。とにかくlibdbus実装以外で使用する本当の理由はありません。」 DOES dbus-launchまたはD-バススイートのサポート内の別のツールが自動的に実行を検出dbus-daemonし、それに接続していますか?~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}D接続がX接続で開始された場合に必要な情報はありますが、X接続が利用できない場合はどこにも保存されていないようです。 独自のD-Busセッションファイルを作成する必要がありますか?その場合、~/.dbus/session-busディレクトリ内のファイルを使用する必要がありますか?パスは/var/lib/dbus/machine-id信頼性が高く、移植可能ですか?
20 session  d-bus 

1
なぜdbusが必要なのですか?
最近、システムからdbusを削除しました(consolekitとpolkitとともに)。変更はありませんでした(.xinitrcからユーザーごとにシステムデーモンとして実行していました)。しかし、多くの人は、dbusだけが必要で、Linuxアプリケーションのほとんどがそれを使用しているなどと主張しています。私の質問は、なぜそれが必要なのですか?私はそれが正確に何をするのか理解していないと思います。私はそれが「メッセージバスシステム」であり、プロセスがそれを介して通信することなどを知っています。私はまだそれを使うことで何が得られるのか分かりません。できれば「実生活から」の例を使って、誰かに説明してもらえますか?
17 linux  process  d-bus 


5
dbusサービスの下のすべてのオブジェクトパスを一覧表示する方法は?
これは、利用可能なDBusサービスのリストへのフォローアップの質問です。 次のPythonコードは、利用可能なすべてのDBusサービスをリストします。 import dbus for service in dbus.SystemBus().list_names(): print(service) Pythonのサービスの下にオブジェクトパスをリストするにはどうすればよいですか?回答にPythonが含まれていなくてもかまいません。 Ubuntu 14.04を使用しています
16 python  d-bus  ipc 

1
D-Bus認証および許可
D-Busへのリモートアクセスを設定しようとしていますが、認証と承認がどのように機能するか(理解できない)を理解していません。 抽象ソケットでリッスンするD-Busサーバーがあります。 $ echo $DBUS_SESSION_BUS_ADDRESS unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 私はdbus-monitor何が起こっているか見に走ります。私のテストケースはnotify-send hello、ローカルマシンから実行されたときに機能します。 同じマシン上の別のアカウントから、そのバスに接続できません。 otheraccount$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 dbus-monitor Failed to open connection to session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network …

1
xセッションなしのgnome-keyringの使用
私のユースケースは、ソフトウェア開発が実行されるヘッドレスサーバーがあることです。通常、SSH接続のX11転送を有効にしますが、接続が遅い遠隔地では使用できません。 定期的にツリー内の18〜20のリポジトリで作業するため、git資格情報の安全なストレージとキャッシュが必要です。そのため、git-credential-gnome-keyringをgit credential.helperとして使用し、libgnome-keyringを使用して通信しますgnome-keyring-daemonへ。ソリューションをテストするために、モニター付きのPCをセットアップし、システムでデフォルトでキーリングが機能することを確認してから、SSHで試してみました。X11転送で動作しますが、それなしでは動作しません。 X11転送なしで接続している場合、キーリングを照会すると次のエラーが発生し、ツールはコマンドラインでのプロンプトにフォールバックします。 ** (process:18305): CRITICAL **: Error communicating with gnome-keyring-daemon 調査の結果、基本的な問題は、gnome-keyring-daemonが接続にdbusを使用して通信することを期待していることです。X11セッションがない場合、dbusは開始されないため、gnome-keyring-daemonとlibgnome-keyringが接続するための一般的なdbusバスはありません。 他の人がこの問題に投稿した2つの解決策を見つけましたが、どちらも私にはうまくいきません。 X11を使用する既存のセッションからDBUSポートを取得します 新しいDBUSポートを手動で起動する 既存のDBUSポートに接続する場合の基本的な概念は、既存のログインセッションのPIDを見つけ、procfsからそのPIDの環境をダンプし、それを検索してDBUS_SESSION_BUS_ADDRESS、現在の環境にエクスポートすることです。これは、セッション内のすべてで使用されるDBUSバスの公開に使用される変数であるため、これを設定すると、セッション内のすべてが共通のDBUSバスで通信できるようになりますが、別のセッションに関連付けられたバスです。 ここのソース: https : //ubuntuforums.org/showthread.php ? t = 1059023 https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh-セッション/ sshログインで実行される.bashrcに追加されたコード: if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] ; then local myPID=`pgrep "(.*session|fluxbox)" | head -n1` if [ -n "$myPID" ] ; then local myVar=`cat /proc/${myPID}/environ …

1
ユーザーサービスを有効にできません。「D-Bus接続の取得に失敗しました:接続が拒否されました」サポート
ユーザーとしてsystemdコマンドを実行すると、このエラーが発生します。 admin@Xroklaus:~ $ systemctl --user list-units Failed to get D-Bus connection: Connection refused ユーザーパラメータがない場合、コマンドは正常に実行されます。 admin@Xroklaus:~ $ systemctl list-units UNIT LOAD ACTIVE SUB DESCRIPTION proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0-rfkill1.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/rfkil sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0 ... To show all installed …

2
Gnomeプログラム(eog / gnome-terminal)の起動が遅く、DBus.Error.NoReply警告が発生する
いくつかの時間のために、eogそしてgnome-terminal私の(X)のUbuntu 13.10上で非常にゆっくりと始めています。他のGnomeツールも影響を受けると思いますが、他のツールは使用していません。 今、私が取得org.freedesktop.DBus.Error.NoReplyするたびにエラーgnome-terminalを開始します: **(gnome-terminal:5516):警告**:アクセシビリティバスアドレスの取得中にエラーが発生しました:org.freedesktop.DBus.Error.NoReply:応答を受信しませんでした。考えられる原因には、リモートアプリケーションが応答を送信しなかった、メッセージバスのセキュリティポリシーが応答をブロックした、応答タイムアウトの期限が切れた、ネットワーク接続が切断された、などがあります。 そして毎回eog始まる: **(eog:4996):警告**:アクセシビリティバスアドレスの取得中にエラーが発生しました:org.freedesktop.DBus.Error.NoReply:応答を受信しませんでした。考えられる原因には、リモートアプリケーションが応答を送信しなかった、メッセージバスのセキュリティポリシーが応答をブロックした、応答タイムアウトの期限が切れた、ネットワーク接続が切断された、などがあります。 (eog:4996):EOG-WARNING **:ロードできませんでしたアイコン:アイコン「image-loading」がテーマにありません 私at-spi2-registrydは、GnomeのAccessibility Projectに属していると思われるを含む、デフォルトで起動していたいくつかのプログラムを削除することに関係していると思います。 によるとdpkg --getselections | grep spi、at-spi2-coreはまだ私のシステムにインストールされています。 デーモンの起動を停止するために、いくつかの設定ファイルまたはバイナリを空のエコープログラムと交換するなど、非常にハック/愚かなことをしたことを覚えています。 このエラーを修正するにはどうすればよいですか? このエラーの原因は何ですか? Googleはいくつかのat-spi...関連リンクを作成します。 https://lists.ubuntu.com/archives/ubuntu-accessibility-bugs/2013-August/006261.html https://lists.ubuntu.com/archives/ubuntu-accessibility-bugs/2013-August/006264.html これは、freedesktop私が抱えている関連する問題に関係している可能性がnmcliあります。nmclifreedesktop DBusの警告とエラーをご覧ください。 ltrace -r eog: 0.000000 __libc_start_main(0x41e210, 2, 0x7fff41235b18, 0x45c020, 0x45c0b0 <unfinished ...> 0.000734 bindtextdomain("eog", "/usr/share/locale") = "/usr/share/locale" 0.001297 bind_textdomain_codeset(0x463fff, 0x45c0f6, 1, 0, 65535) = 0x1d59750 0.000863 textdomain("eog") = …

1
ユーザーsystemd PulseAudioサービス
この質問には他にあまりありません:で実行するPulseAudio systemdサービスを作成するために必要なものを知りたいのですがsystemd --user。 私はGoogleからのさまざまなユーザーサービスを含むいくつかの異なることを試しましたが、dbusとそれに必要な他のすべてとの間でちょうどそれを設定することはできません。 更新:グラフィカルセッションでは問題なく動作するようですが、コンソールからログインするときに、dbusとの不整合がまだあります。しかし、PulseAudioはかなり確実に起動しているので、あまり心配していません。

1
sshリモートログインがdbusを破壊しないようにするにはどうすればよいですか?
私は自分のワークステーションでKDEのもとでopenSUSE 11.3を実行していますが、それにrootアクセス権がありません。デフォルトのシェルはに設定されていますtcsh。ワークステーションにログインし、OS X 10.6を実行しているMacBookからリモートでログインするとssh、次のようになります。 ssh -X -C user@workstation.edu すべてが正常に動作します。ただし、一度完了すると、残念ながらタスクバーパネルのログアウトダイアログボックスなど、GUIで何かを起動しようとすると、ワークステーションセッションでDBUSエラーが発生します。私はstartkdeこれらの状況でログアウトするためだけに殺すことにうんざりしています。 オンラインsshを使用して既存のdbusセッションに接続するための多くの指示を見つけましたが、反対に、sshリモートログインセッションによって既存のdbusセッションを完全に変更しないでください。 私が行った場合 ssh -X -C user@workstation.edu dbus-launch konsole それは機能するので、dbusを壊しているのは対話型ログインシェルだけです。どのように変更すればよい~/.cshrcですか?私は変更する権限を持っていないことに注意してください/etc/cshrc、/etc/loginなど、 必要に応じて、これらのファイルの内容をここにリストできます。 更新: これは、私が見つけたすべてのスクリプトを含む大きなtarファイルです。 http://dl.dropbox.com/u/17203983/cshrc.tgz
10 ssh  kde  opensuse  tcsh  d-bus 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.