7.5. Niveaux d'exécution et X

Dans la plupart des cas, l'installation par défaut de Red Hat Enterprise Linux configure l'ordinateur pour qu'il démarre dans un environnement de connexion graphique, connu en tant que niveau d'exécution 5. Il est toutefois possible de démarrer en mode multi-utilisateur texte-seul, connu en tant que niveau d'exécution 3 et de démarrer ainsi une session X.

Pour obtenir de plus amples informations sur les niveaux d'exécution, reportez-vous à la Section 1.4.

Les sous-sections suivantes examinent la manière selon laquelle X démarre aussi bien au niveau d'exécution 3 qu'au niveau d'exécution 5.

7.5.1. Niveau d'exécution 3

Au niveau d'exécution 3, la meilleure façon de lancer une session X consiste à se connecter et à taper la commande startx. Cette commande startx est une commande frontale (ou front-end) à la commande xinit, qui lance le serveur X et y connecte les applications client X. Étant donné que l'utilisateur est déjà connecté au système au niveau d'exécution 3, startx ne lance pas un gestionnaire d'affichage et n'authentifie pas les utilisateurs. Pour obtenir de plus amples informations sur les gestionnaires d'affichage, reportez-vous à la Section 7.5.2.

Lorsque la commande startx est exécutée, elle recherche un fichier .xinitrc dans le répertoire personnel de l'utilisateur pour définir l'environnement de bureau et, le cas échéant, d'autres applications client X à lancer. Si aucun fichier .xinitrc n'existe, elle utilisera à sa place le fichier /etc/X11/xinit/xinitrc par défaut du système.

Le script xinitrc par défaut recherche alors les fichiers définis par l'utilisateur et les fichiers système par défaut, y compris .Xresources, .Xmodmap et .Xkbmap dans le répertoire personnel de l'utilisateur d'une part, et Xresources, Xmodmap et Xkbmap dans le répertoire /etc/X11/ d'autre part. Les fichiers Xmodmap et Xkbmap, s'ils existent, sont utilisés par l'utilitaire xmodmap pour configurer le clavier. Les fichiers Xresources sont lus afin d'assigner des valeurs préférentielles spécifiques aux applications.

Après avoir paramétré ces options, le script xinitrc exécute tous les scripts situés dans le répertoire /etc/X11/xinit/xinitrc.d/. Parmi les scripts importants faisant partie de ce répertoire figure xinput, permettant de configurer des paramètres comme la langue par défaut.

Ensuite, le script xinitrc essaie d'exécuter .Xclients dans le répertoire personnel (home) de l'utilisateur et recourt à /etc/X11/xinit/Xclients s'il ne peut pas le trouver. Le rôle du fichier Xclients est de démarrer l'environnement de bureau ou, le cas échéant, un simple gestionnaire de fenêtres élémentaire. Le script .Xclients dans le répertoire personnel de l'utilisateur lance l'environnement de bureau spécifié par l'utilisateur dans le fichier .Xclients-default. Si le fichier .Xclients n'existe pas dans le répertoire personnel de l'utilisateur, le script standard /etc/X11/init/Xclients tente de lancer un autre environnement de bureau, en premier GNOME et en second KDE, suivi de twm.

L'utilisateur revient à une session utilisateur en mode texte après s'être déconnecté de X au niveau d'exécution 3.

7.5.2. Niveau d'exécution 5

Lorsque le système démarre au niveau d'exécution 5, une application client X spéciale appelée gestionnaire d'affichage, est lancée. Un utilisateur doit s'authentifier en utilisant le gestionnaire d'affichage avant que tout environnement de bureau ou gestionnaire de fenêtres ne puisse être lancé.

Selon les environnements de bureau installés sur le système, trois gestionnaires d'affichage différents sont disponibles pour assurer l'authentification de l'utilisateur.

Lors du démarrage au niveau d'exécution 5, le script prefdm détermine le gestionnaire d'affichage de préférence en consultant le fichier /etc/sysconfig/desktop. Pour obtenir une liste des options disponibles pour ce fichier, reportez-vous au fichier /usr/share/doc/initscripts-<version-number>/sysconfig.txt (où <version-number> correspond au numéro de version du paquetage initscripts).

Chacun des gestionnaires d'affichage référence le fichier /etc/X11/xdm/Xsetup_0 pour paramétrer l'écran de connexion. Une fois que l'utilisateur s'est connecté au système, le script /etc/X11/xdm/GiveConsole s'exécute pour assigner à l'utilisateur la propriété de la console. Ensuite, le script /etc/X11/xdm/Xsession se lance pour effectuer de nombreuses tâches habituellement exécutées par le script xinitrc lorsque X est démarré au niveau d'exécution 3, y compris le paramétrage du système et des ressources de l'utilisateur ainsi que le lancement des scripts contenus dans le répertoire /etc/X11/xinit/xinitrc.d/.

Les utilisateurs peuvent spécifier l'environnement de bureau qu'ils souhaitent utiliser quand ils s'authentifient avec des gestionnaires d'affichage GNOME ou KDE en faisant leur choix dans le menu Sessions (accessible en choisissant le bouton Menu principal [sur le panneau] => Préférences => Préférences supplémentaires => Sessions). Si l'environnement de bureau n'est pas spécifié dans le gestionnaire de fenêtres, le script /etc/X11/xdm/Xsession vérifie les fichiers .xsession et .Xclients dans le répertoire personnel de l'utilisateur pour décider quel environnement de bureau charger. En dernier ressort, le fichier /etc/X11/xinit/Xclients est utilisé pour sélectionner un environnement de bureau ou gestionnaire de fenêtres à utiliser, de la même façon que pour le niveau d'exécution 3.

Lorsque l'utilisateur termine une session X sur l'affichage par défaut (:0) et se déconnecte, le script /etc/X11/xdm/TakeConsole s'exécute et réassigne la propriété de la console au super-utilisateur (ou root). Le gestionnaire d'affichage original, qui ne s'est pas arrêté depuis la connexion de l'utilisateur, prend le contrôle en lançant un nouveau gestionnaire d'affichage. Ce faisant, le serveur X est redémarré, un nouvel écran d'authentification est affiché et tout le processus recommence à nouveau.

L'utilisateur revient au gestionnaire d'affichage après s'être déconnecté de X au niveau d'exécution 5.

Pour obtenir de plus amples informations sur le contrôle de l'authentification des utilisateurs par les gestionnaires d'affichage, reportez-vous d'une part au fichier /usr/share/doc/gdm-<version-number>/README (où <version-number> correspond au numéro de version du paquetage gdm installé) et d'autre part à la page de manuel de xdm.