[완료] XOpenDisplay 다른 호스트 서버로의 연결 문제

kakalot81의 이미지

처음 글을 남깁니다.

요즘 X윈 플밍을 시작하고 있는데,
얼마전 구축한 클러스터로 마스터 노드에서 원격으로 다른 호스트로 윈도우를 띄우는 작업이 필요합니다.
현재 제 클러스터 환경은 ssh, rsh, 등으로 각 로컬에 접속 가능한 상태로 set 해놓았구요.
아래 코드가 위치한 부분도 모든 노드에서 작동할 수 있도록 마운트시켜 놓았습니다.

XOpenDisplay("hostname1:0.0");

함수를 이용해서 hostname1이라는 호스트에 master에서 작업한 윈도우를 띄우려고 하는데
컴파일은 성공적으로 완료되었지만 실행시에 Segmentation fault 라는 에러가 발생합니다.

XOpenDisplay(NULL); 은 제대로 잘 작동합니다.즉 현재 DISPLAY라는 환경 변수값을 읽어올 수는 있습니다.

하지만 기본적인 master에서 master로 디스플레이를 만드는
XOpenDisplay("master:0.0"); 함수 또한 세그멘테이션 오류가 발생합니다.

Quote:

... 여기서 콜론(:)은 TCP/IP를 지원하는 네트웍임을 나타내지만...중략.
X-Window Programming in 프세

제가 네트웍쪽은 개념이 잘 안잡힌 관계로 TCP/IP를 지원하는 이라는 말을 잘 이해하지 못하겠네요.
따로 서비스(네트웍) 설정을 해주어야 하는 건가요?

좀 도와주세요 일주일째 제자리 걸음입니다. ㅡㅜ

세벌의 이미지

잘은 모르겠지만... xhost 관련 아닐런지...

http://sebul.sarang.net/

kakalot81의 이미지

글쓴이입니다.
현재 xhost 설정을 완료하고 시도해보았는데
A, B 호스트네임이 있다고 가정했을때
A - DISPLAY=A:0.0
B - DISPLAY=B:0.0 이라고 환경변수에 set해놓고 (by export ...)
#~B] xhost +
#~A] xlogo -display B:0.0
하니, Error : Can`t open display: A:0.0 이라고 뜨네요.

X윈도에서 tcp 접근설정 막아놓은 /etc/X11/fs/config 의 no-listen = tcp도 주석처리 했습니다.
방화벽은 제거했구요,/etc/hosts.allow 에서는 ALL : ALL 해주었습니다.
그리고 ssh를 통해서는 -x 옵션을 사용해 디스플레이 되었습니다.
(X11Forwarding yes로 설정하니까 되더군요)

호스트 서로간의 X-window 접근에 문제가 있는건지.. 제가 틀리거나 놓친 부분이 있는지..
아.. 미치겠네요.ㅜㅜ 누가 답변 좀 해주세요.

kakalot81의 이미지

혼자 북치고 장구치는 것 같지만, 결국 해결했기에 이렇게 댓글을 답니다.
환경변수 문제는 아니었구요. 역시 tcp 제한 문제였네요. 헐..
# ps -at | grep X
실행해보니, 저 뒤에 tcp 제한이 떡하니 버티고 있더군요.

그런데 헤맨건 제 환경이 kde인데 /etc/kde3/kdm/kdmrc 에서 no-listen = tcp라는 부분을 못 찾았습니다. 오랜 방황끝에 X-window GUI 환경에서 설정을 찾아 수정했네요

KDE -> System -> Login Screen -> 보안탭
여기서 X 서버에서 TCP 연결거부를 비활성화 해주면 됩니다.

혹시 kde 정확한 파일 경로나 no-listen = tcp 위치 아시는 분은 답글 부탁드립니다.

그럼 부디 저같은 삽질을 하시지 않길 바라며.

No Pain, no gain.!

danskesb의 이미지

KDE 3이라면 저 경로가 맞을 것이고, KDE 4라면 /usr/lib/kde4/etc/kde4/kdm/kdmrc 입니다. 제 kdmrc 파일에서 [X-:*-Core] 섹션 아래에 보면

ServerArgsLocal=-nolisten tcp

부분이 있더군요. 그걸 주석 처리 해 주면 됩니다.
---- 절취선 ----
http://blog.peremen.name

kakalot81의 이미지

kde3 정확한 경로입니다.
/etc/kde/kdm/kdmrc
[X-:*-Core] 섹션 아래에 보면 ServerArgsLocal =-nolisten tcp

이 부분의 주석처리를 해제하면 됩니다.

답변 주신분들 모두 감사드립니다.^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.