我正在尝试在远程系统中运行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
为什么 tou 使用分号?这会在本地主机上创建一个新命令。
尝试使用
ssh [email protected] "dbus-send --print-reply --dest=service.name /object/path object.path.Service.method string:XYZ"
另请注意,/object/path 位于远程主机上。
下次尝试:尝试 addind /usr/bin (如果事实上,在远程主机上,isseuwhich dbus-send
知道确切的路径)。
ssh [email protected] "/usr/bin/dbus-send --print-reply --dest=service.name /object/path object.path.Service.method string:XYZ"
你能提供错误信息吗?