RHEL6 && OEL6 $DISPLAY는 시작 시 어떻게 결정됩니까?

RHEL6 && OEL6 $DISPLAY는 시작 시 어떻게 결정됩니까?

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) 매뉴얼 페이지의 "표시 이름" 섹션을 참조하십시오.

/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}

관련 정보