
내 OEL6 서버에서 일관되지 않은 $DISPLAY 변수가 발생하여 상당한 오류가 발생했습니다.소켓 파일 문제.
환경 변수 $DISPLAY를 실제로 설정하는 것에 대해 놀랍게도 거의 발견하지 못했습니다. 그것이 무엇을 하는지(다소) 알고 있으며 쉘에서 수동으로 설정하는 방법도 알고 있습니다. 내가 모르는 것은 환경 변수가 어떻게 설정되는지입니다. 시스템이 시작 중입니다.
그래서
GDM 환경 변수 $DISPLAY는 어떻게, 어디에 설정되며 어떻게 GDM을 :0.0으로 강제할 수 있습니까?
export DISPLAY=:0.0
참고: 이 경우에는 아무 소용이 없으므로 찾고 있지 않습니다 .
답변1
사람의 경우엑스(7)섹션이 있어요표시 이름이는 다음과 같이 말합니다.
POSIX 시스템에서는 기본 표시 이름이 DISPLAY 환경 변수에 저장됩니다. 이 변수는 xterm 터미널 에뮬레이터에 의해 자동으로 설정됩니다.
그리고 다음:
마지막으로, 대부분의 X 프로그램은 DISPLAY의 내용을 임시로 무시하기 위해 -display displayname이라는 명령줄 옵션을 허용합니다. 이는 다른 사람의 화면에 창을 표시하거나 사용자의 디스플레이를 다시 가리키는 xterm을 시작하기 위한 "원격 쉘" 명령의 일부로 가장 일반적으로 사용됩니다.
남자엑스서버(1)옵션에 대한 정보가 있습니다:
:표시번호 X 서버는 기본적으로 0인 지정된 디스플레이 번호로 실행됩니다. 여러 X 서버가 호스트에서 동시에 실행되는 경우 각 서버에는 고유한 디스플레이 번호가 있어야 합니다. 클라이언트가 사용해야 하는 디스플레이 번호를 지정하는 방법을 알아보려면 X(7) 매뉴얼 페이지의 DISPLAY NAMES 섹션을 참조하세요.
다음을 살펴보십시오. /etc/gdm/Init/Default(ArchLinux에서 사용 가능하므로 RHEL 시스템에서 사용 가능한지 확실하지 않음).
추가 결과. DISPLAY는 xinit 프로그램에 의해 설정됩니다. xinit.c에는 다음이 있습니다:
if (argc > 0 && (argv[0][0] == ':' && isdigit(argv[0][1])))
displayNum = *argv;
else
displayNum = *sptr++ = default_display;
(...)
static void
set_environment(void)
{
if (setenv("DISPLAY", displayNum, TRUE) == -1)
Fatal("unable to set DISPLAY");
}
따라서 xinit는 기본값을 설정하거나 실행 시 xinit에 전달된 옵션에서 기본값을 가져올 수 있습니다.시니트(1):
xinit [ [ client ] options ... ] [ -- [ server ] [ display ] options ... ]
그리고 하나 더. 환경 변수는 PAM으로 설정할 수 있습니다. 예./etc/security/pam_env.conf
# Set the DISPLAY variable if it seems reasonable
#DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}