원격 시스템에서 "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 - 범용 우분투 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"

오류 정보를 제공할 수 있나요?

관련 정보