在远程系统中运行“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-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"

你能提供错误信息吗?

相关内容