X11フォワーディングとSSHを介してさまざまなGnomeアプリケーションを実行しようとしています。一部のアプリケーションでは、「dbus-launch」アプリケーションが最初に生成されます。問題は、Xアプリケーションの終了時にdbus-launchが閉じないため、SSHセッションを適切に閉じる前に終了する必要があることです。
問題は、X / Gnomeアプリケーションがメインメッセージバスデーモンに接続できないため、独自のコピーを起動する必要があることだと思いますか?どうすれば修正できますか?または私は何が欠けていますか?
以下に例を示します。X11転送を有効にしていますが、すべて正常に動作しているようです。
[me@host ~]$ gnome-calculator &
[1] 4803
(ここでgcalctoolプログラムが起動し、削除Xサーバー(Xming)に表示されます)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4803 pts/0 00:00:00 gnome-calculator
4807 pts/0 00:00:00 dbus-launch
4870 pts/0 00:00:00 ps
(今、リモートセッションでgcalctoolアプリを閉じた後)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4807 pts/0 00:00:00 dbus-launch
4898 pts/0 00:00:00 ps
dbus-launchはまだアクティブであることに注意してください。そして最悪の部分は、これにより、SSH接続が強制終了されるまで適切に閉じることができなくなります。
以下に示すように、システム全体のメッセージデーモンが実行されていることに注意してください。
[me@host ~]$ ps ax
4696 ? Ssl 0:00 dbus-daemon --system
ここに何が欠けていますか?私は以前にこの動作を見たことがない。おそらく、メッセージバスデーモンに接続できるアプリケーションが妨げられることはありませんか?/ etc / dbus-1で答えを探しましたが、何を探すべきかわかりません。
助けてくれてありがとう。
[編集]
OK、私は共通の問題を経験していることに気づいています。これはかなり一般的な動作のようですが、良い解決策はありません。ttyでdbus-launchがまだアクティブであるため、SSHハングが発生しています。しかし、dbus-launchを静かに実行する良い方法はないようです。
/etc/X11/xinit/xinitrc.d/00-start-message-bus.shを見ると、「通常の」Xセッションで何が起こるかについての手がかりが得られます。もちろん、XアプリケーションをリモートXサーバーに呼び出すだけでは機能しません。
一時的な回避策として、これを.bash_logoutに追加しました。
# ~/.bash_logout
pkill -u $USER -t `tty | cut -d '/' -f 3,4` dbus-launch
これにより、SSHセッションを終了できますが、気分が悪くなります。より良い解決策はありますか?dbusが邪魔することなくリモートX11アプリケーションを実行する適切な方法は何ですか?