RHEL6&&OEL6 $ DISPLAYは起動時にどのように決定されますか?

RHEL6&&OEL6 $ DISPLAYは起動時にどのように決定されますか?

OEL6サーバーで一貫性のない$ DISPLAY変数が発生し、多くの問題が発生しています。ソケットファイルに問題があります

実際には、環境変数$ DISPLAYを設定する方法についてほとんど知りませんでしたが、それが何をするのか、シェルで手動で設定する方法を知っていますが、システムが起動するタイミングはわかりません。

だから

GDM環境変数$ DISPLAYはどのように、どこで設定され、GDMを0.0に強制するのですか?

export DISPLAY=:0.0注:この場合は役に立たないので、私はそれを探していません。

答え1

人々の中でX(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}

関連情報