원격 호스트에 로그인을 사용하여 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에 연결할 수 없음: 연결이 거부됨)
이 경우 gnome-terminal을 어떻게 실행합니까?
답변1
실제로 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
export $(dbus-launch)
참고: hostnamectl은 systemd의 일부이며 dbus-launch의 출력을 검색하고 변수를 내보내는 방식으로 시스템 ID 및 dbus-launch를 검색하여 원하는 변수를 표시할 수 있습니다.
답변2
이전 답변 중 어느 것도 제 경우에는 효과가 없었지만 dbus-launch를 통해 애플리케이션을 시작하면 작업이 완료되었습니다.
ssh myhost "dbus-launch gnome-terminal --display localhost:10.0 &"
답변3
빨리 달려:
> dbus-launch gnome-terminal
답변4
웃기네요... dbus를 다시 시작해도 소용이 없었고, 컴퓨터 ID 파일도 삭제하고 다시 시작해야 했습니다.
$ rcdbus stop
$ rm /var/lib/dbus/machine-id
$ rcdbus start
이것은 최근 VMWare에서 복제한 SLES 11.4 서버에 있습니다. 내 문제는 yast2 또는 gedit를 시작할 수 없다는 것입니다 ...
명령줄에 표시되는 오류는 다음과 같습니다.
애스터 2
** (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]
힌트를 주셔서 감사합니다!