リモートシステムで実行しようとしていますが、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-send
dbus-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"
エラー情報を提供できますか?