원격 SSH 세션을 통해 Gnome 앱을 실행할 수없는 이유는 무엇입니까?


9

를 사용하여 원격 호스트에 로그인하면 ssh -X me@host성공적으로 실행 gnome-terminal -e "tail -F /var/log/file" &됩니다. 로그 오프 한 후 다음날 같은 것을 시도하면 다음과 같은 결과가 나타납니다.

세션 버스를 가져 오지 못했습니다. / tmp / dbus-K99gT9yDjS 소켓에 연결하지 못했습니다 : 연결이 거부되었습니다 비 공장 모드로 다시 떨어집니다. GConf 악마를 소환하지 못했습니다. 종료. 구성 서버에 접속하지 못했습니다. ORBit에 대해 TCP / IP 네트워킹을 활성화해야하거나 시스템 충돌로 인해 오래된 NFS 잠금이 발생했을 수 있습니다. 자세한 내용은 http://projects.gnome.org/gconf/ 를 참조 하십시오 . (자세히-1 : 세션 연결 실패 : 소켓 / tmp / dbus-K99gT9yDjS에 연결하지 못했습니다 : 연결이 거부되었습니다)

이 상황에서 그놈 터미널을 어떻게 실행합니까?


여기에 질문이 표시되지 않습니다. 게시물이 닫히기 전에 이에 대해 무언가를해야합니다.
Agi Hammerthief

귀하의 질문에서 '솔루션'부분을 잘라 내고 답변으로 제출할 수 있습니다. 괜찮습니다.
Agi Hammerthief

SSH를 사용하여 다른 컴퓨터에 로그인하는 경우 쉘 / 터미널 액세스 권한이 부여됩니다. 해당 머신에서 터미널 창을 열 필요는 없습니다. 컴퓨터의 터미널에 입력하여 해당 컴퓨터에서 직접 명령을 실행할 수 있습니다.
Agi Hammerthief

2
Nigel Nquande가 말했듯이 질문에 대한 답변 단추를 누르고 솔루션 섹션을 복사 하여 답변에 붙여 넣으십시오 . 그것은 받아 들여질뿐만 아니라 격려가되었습니다.
derobert

2
그 동안 질문 이 아니기 때문에 귀하의 질문 에서 솔루션을 제거했습니다 . 이런 종류의 자체 답변 질문은 환영 이상이지만 답변을 답변으로 게시하십시오 . 우리 한 번 봐 가지고 도움말 센터 또는 십초 가지고 여행을 자세한 내용은. "편집 한 X 분 전"링크를 클릭하면 편집 내역 에서 원본 텍스트를 볼 수 있습니다 (다시 쓰지 않아도 됨) .
terdon

답변:


7

실제로 SSH 세션이 열려 있으면 dbus 세션이 시작되지 않습니다. 일부 프로그램은이 프로그램을 시작할 수 있지만 세션에서 알지 못하므로 닫을 수 없습니다.

dbus 세션에 대해 알지 못하면 dbus를 사용하지만 직접 실행하지 않는 프로그램에 문제가 있음을 의미합니다.

dbus 섹션은 시스템 및 X11 디스플레이 당입니다. 그들의 정보는 $ HOME / .dbus / session-bus /-에 저장되지만, 여기에서 참조 된 프로세스는 닫힐 수 있으므로 dbus 실행이 필요한지 여부를 결정하기 위해 추가 검사가 필요합니다. 그런 다음 변수를 세션으로 내 보냅니다.

그런 다음 매력처럼 작동합니다 :)

.bash_profile 파일에 다음을 넣습니다.

# set dbus for remote SSH connections
if [ -n "$SSH_CLIENT" -a -n "$DISPLAY" ]; then
    machine_id=$(LANGUAGE=C hostnamectl|grep 'Machine ID:'| sed 's/^.*: //')
    x_display=$(echo $DISPLAY|sed 's/^.*:\([0-9]\+\)\(\.[0-9]\+\)*$/\1/')
    dbus_session_file="$HOME/.dbus/session-bus/${machine_id}-${x_display}"
    if [ -r "$dbus_session_file" ]; then
            export $(grep '^DBUS.*=' "$dbus_session_file")
            # check if PID still running, if not launch dbus
            ps $DBUS_SESSION_BUS_PID | tail -1 | grep dbus-daemon >& /dev/null
            [ "$?" != "0" ] && export $(dbus-launch) >& /dev/null
    else
            export $(dbus-launch) >& /dev/null
    fi
fi

참고 : hostnamectl은 systemd의 일부이며 machine-id를 검색 할 수 있습니다. dbus-launch는 원하는 변수를 표시합니다. 를 사용하여 export $(dbus-launch)dbus-launch의 출력을 검색하고 변수를 내 보냅니다.


5

이전의 답변 중 어느 것도 제 경우에는 효과가 없었지만 dbus-launch를 통해 응용 프로그램을 시작하면 작업이 수행되었습니다.

ssh myhost "dbus-launch gnome-terminal --display localhost:10.0 &"

3

나는 이것을 찾았다:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639261

나는 이것을 시도하게했다.

$ sudo rm /var/lib/dbus/machine-id
$ sudo service messagebus restart

이제 그놈 터미널을 실행할 수 있습니다!


2
놀랍게도 16.04에서도 작동했습니다. 방금 restart 명령을로 변경해야했습니다 sudo service dbus restart. 감사!
Avio

⚠️ 경고 : dbus를 다시 시작하면 전체 X 세션이 다시 시작될 수 있습니다
Adam Katz

1

그냥 실행 :

> dbus-launch gnome-terminal

1
왜 이것이 도움이 될까요?
DarkHeart

1
이것은 또한 나를 위해 일했습니다. 왜 그런지 모르겠습니다.
Robert Lugg

0

흥미롭게도 dbus를 다시 시작해도 효과가 없었습니다. 시스템 ID 파일도 제거하고 다시 시작해야했습니다.

$ rcdbus stop
$ rm /var/lib/dbus/machine-id
$ rcdbus start

이것은 최근 VMWare에서 복제 한 SLES 11.4 서버에있었습니다. 내 문제는 yast2 또는 gedit을 시작할 수 없다는 것입니다 ...

이것들은 명령 줄에서 내가 본 오류입니다.

yast2

** (y2controlcenter-gnome:9981): WARNING **: error accessing /desktop/gnome/lockdown/disable_command_line [Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details -  1: Failed to get connection to session: Failed to connect to socket /tmp/dbus-W7H31tbhVY: Connection refused)]


** (y2controlcenter-gnome:9981): WARNING **:
GError raised: [Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details -  1: Failed to get connection to session: Failed to connect to socket /tmp/dbus-W7H31tbhVY: Connection refused)]

user_message: [libslab_get_gconf_value: error getting /desktop/gnome/applications/main-menu/lock-down/user_modifiable_apps] 

팁 고마워!


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.