リモートシステムで「dbus-send」を実行します。

リモートシステムで「dbus-send」を実行します。

リモートシステムで実行しようとしていますが、dbus-send実行できません。しかし、繰り返しますがdbus-send、ローカルシステムで実行すると正常に動作します。

注文する:

ssh [email protected] "dbus-send --print-reply --dest=service.name /object/path object.path.Service.method string:"XYZ""

dbus-sendリモートシステムでコマンドを実行するには?

システムメッセージ

Linux 3.13.0-29 - ユニバーサル Ubuntu i686 GNU/Linux

答え1

dbus-senddbus-sessionに接続するには、いくつかの環境変数が必要です。まず、それらを推定する必要があります。まずssh機械に行きます。

変数$DISPLAY:

DISPLAY=$(strings /proc/$(pgrep -n Xorg)/environ | awk -F== '$1 ~ "DISPLAY"{print $2}')

dbusセッション変数:

source ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-0

これでdbus-sendコマンドを発行できます。

答え2

なぜセミコロンを使用するのですか?これにより、localhostに新しいコマンドが生成されます。

試してみてください

ssh [email protected] "dbus-send --print-reply --dest=service.name /object/path object.path.Service.method string:XYZ"

また、/object/path はリモートホストにあります。

次回試してください:addind /usr/binを試してください(実際にリモートホスト上のisseuがwhich dbus-send正しいパスを知っている場合)。

ssh [email protected] "/usr/bin/dbus-send --print-reply --dest=service.name /object/path object.path.Service.method string:XYZ"

エラー情報を提供できますか?

関連情報