In most cases, the default installation of Red Hat Enterprise
Linux configures a machine to boot into a graphical login
environment, known as runlevel 5. It is possible, however, to boot
into the text-only multi-user mode called runlevel 3 and begin an X
session from there.
For more information about runlevels, refer to Section 1.4 SysV Init
Runlevels.
The following subsections review how X starts up in both
runlevel 3 and runlevel 5.
When in runlevel 3, the best way to start an X session is to log
in and type startx. The startx command is a front-end to the xinit command, which launches the X server
(Xorg) and connects X client applications
to it. Because the user is already logged into the system at
runlevel 3, startx does not launch a
display manager or authenticate users. Refer to Section 7.5.2 Runlevel
5 for more information about display managers.
When the startx command is executed, it
searches for an .xinitrc file in the
user's home directory to define the desktop environment and
possibly other X client applications to run. If no .xinitrc file is present, it uses the system
default /etc/X11/xinit/xinitrc file
instead.
The default xinitrc script then looks
for user-defined files and default system files, including
.Xresources, .Xmodmap, and .Xkbmap in
the user's home directory, and Xresources, Xmodmap, and
Xkbmap in the /etc/X11/ directory. The Xmodmap and Xkbmap files,
if they exist, are used by the xmodmap
utility to configure the keyboard. The Xresources file is read to assign specific
preference values to applications.
After setting these options, the xinitrc script executes all scripts located in the
/etc/X11/xinit/xinitrc.d/ directory. One
important script in this directory is xinput, which configures settings such as the
default language.
Next, the xinitrc script tries to
execute .Xclients in the user's home
directory and turns to /etc/X11/xinit/Xclients if it cannot be found. The
purpose of the Xclients file is to start
the desktop environment or, possibly, just a basic window manager.
The .Xclients script in the user's home
directory starts the user-specified desktop environment in the
.Xclients-default file. If .Xclients does not exist in the user's home
directory, the standard /etc/X11/xinit/Xclients script attempts to start
another desktop environment, trying GNOME first and then KDE
followed by twm.
The user is returned to a text mode user session after logging
out of X from runlevel 3.
When the system boots into runlevel 5, a special X client
application, called a display manager, is launched. A user must
authenticate using the display manager before any desktop
environment or window managers are launched.
Depending on the desktop environments installed on the system,
three different display managers are available to handle user
authentication.
-
GNOME — The default display
manager for Red Hat Enterprise Linux, GNOME allows the user to configure language
settings, shutdown, restart or log in to the system.
-
KDE — KDE's display manager which
allows the user to shutdown, restart or log in to the system.
-
xdm — A very basic display
manager which only lets the user log in to the system.
When booting into runlevel 5, the prefdm script determines the preferred display
manager by referencing the /etc/sysconfig/desktop file. A list of options for
this file is available within the
/usr/share/doc/initscripts-<version-number>/
sysconfig.txt
|
file (where <version-number> is the version number of
the initscripts package).
Each of the display managers reference the /etc/X11/xdm/Xsetup_0 file to set up the login
screen. Once the user logs into the system, the /etc/X11/xdm/GiveConsole script runs to assign
ownership of the console to the user. Then, the /etc/X11/xdm/Xsession script runs to accomplish
many of the tasks normally performed by the xinitrc script when starting X from runlevel 3,
including setting system and user resources, as well as running the
scripts in the /etc/X11/xinit/xinitrc.d/
directory.
Users can specify which desktop environment they want to utilize
when they authenticate using the GNOME or
KDE display managers by selecting it from
the menu item (accessed by
selecting [on the Panel]
=> => => ). If the desktop environment is not
specified in the display manager, the /etc/X11/xdm/Xsession script checks the .xsession and .Xclients
files in the user's home directory to decide which desktop
environment to load. As a last resort, the /etc/X11/xinit/Xclients file is used to select a
desktop environment or window manager to use in the same way as
runlevel 3.
When the user finishes an X session on the default display
(:0) and logs out, the
/etc/X11/xdm/TakeConsole script runs and
reassigns ownership of the console to the root user. The original
display manager, which continued running after the user logged in,
takes control by spawning a new display manager. This restarts the
X server, displays a new login window, and starts the entire
process over again.
The user is returned to the display manager after logging out of
X from runlevel 5.
For more information on how display managers control user
authentication, refer to the /usr/share/doc/gdm-<version-number>/README (where
<version-number> is the
version number for the gdm package
installed) and the xdm man page.