원격 시스템에서 실행하려고 하는데 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-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"
오류 정보를 제공할 수 있나요?