Can't open display

현상


Can't open display: HOSTNAME(또는 IP 주소):0 이라는 메시지와 함께 응용프로그램이 실행되지 않습니다.



원인 및 해결방법


X응용프로그램이 출력되어야 할 장소(DISPLAY)가 아닌 다른 장소로 출력을 시도하다가 실패했을 때 나오는 오류 메시지입니다.


  • 사용자의 시작 스크립트(Startup script, 초기화 파일, .login, .profile)에 DISPLAY를 강제로 지정하여 놓은 경우입니다. 
    이 경우 can't open display: HOST_IP_ADDRESS:0에서 HOST는 Xmanager를 실행시킨 곳이 아닌 다른 장소입니다.
    시작 스크립트에서 DISPLAY를 강제로 할당한 부분이 있으면 반드시 제거합니다.

  • HOST가 Xmanager를 실행시킨 장소가 맞지만 UNIX(Linux)에서 Xmanager가 실행 중인 PC로 패킷을 전달할 수 없는 경우입니다.
    • 방화벽이 있는 경우 : TCP 6000~(UNIX->PC), UDP 177(PC->UNIX)번 개방.  PC쪽에서 패킷 필터링을 하는 경우 이를 해제합니다.
    • 네트워크 구성이 문제인 경우 : 사설망을 구성한  경우 SSH 접속이나 포트 포워딩을 이용해야 합니다.
  • Xstart 세션에서 SSH 접속을 시도할 때 발생하는 경우 : HOST가 localhost이거나 접속하고자 하는 UNIX(Linux)의 호스트명(IP주소)입니다.
    /etc/hosts에 localhost를 등록하거나 UNIX(Linux)의 호스트명을 등록합니다.
    이 경우 다음과 같은 에러 메시지가 같이 출력되기도 합니다.

    socketinetconnect: can't get address for localhost
    /usr/x11r6/bin/kterm xt error: can't open display: localhost:10.0