Xmanager 게시판

$DISPLAY 환경 변수 문제

최종입력: 2012-07-13 16:32 - 넷사랑 | 답글: 7건

 
2012-05-25 11:27 - 정해영

$DISPLAY 환경 변수 문제

 
윈도우즈 7 환경에서 Xmanager 3 + PuTTY(ssh)를 사용하여 CentOS가 설치된 서버에 접속하여 업무를 처리하고 있습니다. 지금 겪는 문제가 Xmanager와 직접적으로 연관된것 같지는 않지만, 혹시 도움이 되지 않을까 하여 질문 드립니다.

Consed 라고 하는 생명과학 분야의 X 응용 프로그램을 사용하는 중인데, CentOS 5.8까지는 PuTTY 화면에서 아무런 문제 없이 실행을 해 왔습니다. 리눅스 서버 쪽의 방화벽(iptables)은 작동하지 않은 상태입니다. 그런데 이번에 CentOS 6.2로 업그레이드를 했더니, consed 실행 전에 명시적으로 $DISPLAY 환경 변수를 지정하지 않으면 다음과 같은 오류 메시지가 납니다.

_X11TransSocketINETConnect() can't get address for localhost:6010: Name or service not known
Error: Can't open display: localhost:10.0

다른 X 응용 프로그램은 아무런 문제 없이 화면을 잘 띄우고 실행이 됩니다. 하도 이상해서 남는 컴퓨터에 CentOS 5.8을 새로 설치하여 Consed를 실행하면 특별히 손을 댄 것이 없이도 잘 실행이 됩니다.

아주 간단한 설정 문제 같은데, 도움을 주시면 고맙겠습니다.

프로그램 버전 : Xmanager 3.0
연결 방법 : Other
2012-05-25 14:18 - 프롬

Re: $DISPLAY 환경 변수 문제

 
/etc/hosts 파일에 다음을 추가해 보세요~(다음처럼 되도록 해 보세요)

127.0.0.1 localhost
2012-05-25 16:20 - 정해영

Re: $DISPLAY 환경 변수 문제

 
답변 감사합니다.

하지만 서버의 /etc/hosts에는 이미 다음과 같은 내용이 들어 있습니다. 평소에 자주 쓰는 다른 리눅스 서버의 IP 주소와 호스트명을 추가로 기재한 것 외에는 localhost 관련한 라인은 전혀 건드리지 않았습니다...

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
2012-05-25 18:04 - 넷사랑

Re: $DISPLAY 환경 변수 문제

 
안녕하십니까?
넷사랑컴퓨터 기술지원입니다.

Xmanager는 자체적으로 SSH를 지원하므로 별도의 ssh 클라이언트를 사용할 필요가 없습니다.

Xstart를 실행하여 프로토콜을 SSH로 선택해 보십시오.
단지 실행명령란에 사용하고자 하는 'consed'의 명령어 경로만 입력하는 것으로 원하는 결과를 얻을 수 있습니다.

문제가 계속되어 다시 문의하고자 할 경우 Xstart의 원격 실행 결과를 보내 주십시오.

감사합니다.
2012-05-25 19:10 - 정해영

Re: $DISPLAY 환경 변수 문제

 
터미널 창을 열고 데이터가 있는 디렉토리로 이동한 뒤 직접 명령어를 쳐서 작업하는 것을 좋아하는 편이라 PuTTY를 같이 쓰고 있습니다.

제안하신 바와 같이 xstart에서 문제의 명령어를 실행시켰지만 마찬가지로 같은 에러 메시지가 납니다. 원격 실행 결과는 다음과 같습니다.

[19:01:55] 호스트 'proton.kribb.re.kr'의 IP 주소를 찾는 중...
[19:01:55] Connected.
[19:01:55] Version exchange initiated...
[19:01:55] server: SSH-2.0-OpenSSH_5.3
[19:01:55] client: SSH-2.0-nsssh2_3.0.0019 NetSarang Computer, Inc.
[19:01:55] SSH2 is selected.
[19:01:55] Algorithm negotiation initiated...
[19:01:55] key exchange: diffie-hellman-group14-sha1
[19:01:55] host key: ssh-dss
[19:01:55] outgoing encryption: aes128-cbc
[19:01:55] incoming encryption: aes128-cbc
[19:01:55] outgoing mac: hmac-sha1
[19:01:55] incoming mac: hmac-sha1
[19:01:55] outgoing compression: none
[19:01:55] incoming compression: none
[19:01:56] Host authentication initiated...
[19:01:56] Hostkey fingerprint:
[19:01:56] ssh-dsa 1024 6b:1d:33:3a:64:0e:fc:4f:53:0d:8a:72:3c:7d:ae:72
[19:01:56] Accepted. Verifying host key...
[19:01:56] Verified.
[19:01:56] User authentication initiated...
[19:01:56] Sent user name 'hyjeong'.
[19:02:00] Sent password.
[19:02:00] Access granted.
[19:02:00] X11 포워딩을 요청했습니다...
[19:02:00] 성공.
[19:02:00] 실행명령을 보냈습니다.
[19:02:00] /usr/local/genome/bin/consed
[19:02:00] Start timer (TIMER_SHUTDOWN, 180).
no ~/consedrc file so no user resources will be used--that's ok
no consedrc file so no project-specific resources--that's ok
couldn't open readOrder.txt--that's ok
_X11TransSocketINETConnect() can't get address for localhost:6014: Name or service not known
Error: Can't open display: localhost:14.0
[19:02:00] Connection closed.

xstart로 정상 접속이 되는 CentOS 5.8 설치 컴퓨터에서는 원격실행결과를 보니 Start timer라는 표시 바로 뒤에 다음과 같이 표시가 됩니다.

[19:05:38] X11 채널(id=1)이 시작되었습니다.
[19:05:38] Stop timer (TIMER_SHUTDOWN).


OS만 바뀌었고 다른 설정은 하나도 틀린 것이 없다고 생각하는데, 도대체 이유를 모르겠습니다. 사실 넷사랑 Xmanager 제품과는 상관이 없는 문제라고 생각되어 질문 드리기도 송구합니다^^
2012-05-30 09:41 - 넷사랑

Re: $DISPLAY 환경 변수 문제

 
안녕하십니까?
넷사랑컴퓨터 기술지원입니다.

보내 주신 로그를 보면 해당 CentOS 장비가 localhost 위치를 찾지 못해서 생기는 문제입니다.
/etc/hosts 파일에서 다음 부분의 localhost 부분을 뺀 후 접속해 보십시오.
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
=>
::1 localhost.localdomain localhost6 localhost6.localdomain6

문제가 해결되지 않을 경우 다음과 같이 해 보신 후 결과를 보내 주십시오.

-. ping localhost 명령의 결과

-. xstart에서 실행 명령에 /usr/bin/gnome-terminal을 입력하여 gnome-terminal 터미널 에뮬레이터를 실행합니다.
이 터미널에서 echo $DISPLAY 명령을 내린 후 그 결과.

-. 위에서 $DISPLAY 변수에서 localhost 부분을 127.0.0.1로 바꾼 후 해당 프로그램을 실행해 보십시오.
$ echo $DISPLAY
localhost:15.0
$ export DISPLAY=127.0.0.1:15.0
$ /usr/local/genome/bin/consed

감사합니다.
2012-07-10 08:56 - 정해영

Re: $DISPLAY 환경 변수 문제

 
문제가 해결되었습니다. /etc/hosts의 내용을 다음과 같이 단순화하였더니 잘 됩니다.

(1)
127.0.0.1 localhost

CentOS 6.2 설치 직후의 /etc/hosts는 다음처럼 다소 복잡하였었습니다.

(2)
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

아마도 consed program이 localhost의 주소(127.0.01)을 파악하기 위해 /etc/hosts 파일을 참조할 때, (2)와 같은 형식을 제대로 인식하지 못하는 것으로 생각됩니다. consed 실행에 문제가 없는 우분투 10.x의 /etc/hosts 파일은 (2)의 형식으로 되어 있습니다.

감사합니다.

2012-07-13 16:32 - 넷사랑

Re: $DISPLAY 환경 변수 문제

 
문제가 해결되어 다행입니다.

항상 최선을 다하는 (주)넷사랑컴퓨터가 되겠습니다.

해결 사례를 알려 주셔서 감사합니다.