Автор статьи: Дата: 18.08.2003
1. Какие DM бывают?
В настоящий момент, лично я, видел только три DM. Это X Display Manager (xdm), Gnome Display Manager (gdm) и KDE Display Manager (kdm). Какой из перечисленных запускается на Вашем компьютере можно легко отличить по внешнему виду. Самый простой - это xdm, но в тоже время это стандартный (входящий в комплект XFreee) для X-ов DM. Более красивые и более функциональные - это gdm и kdm. Почитав документацию по соответствующему DM Вы можете узнать подробности о его возможностях и параметрах настройки. Какой из DM использовать и использовать ли его вообще - это дело вкуса.
2. С чего начать?
Первым делом имеет смысл, посмотреть, каким образом у Вас на компьютере происходит запуск DM. Для этого необходимо открыть файл /etc/inittab:
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg,
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel.
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
Нас интересует последняя строка, в которой запускается процесс (в данном случае это скрипт /etc/X11/prefdm), предписанный для выполнения при переходе на 5 runlevel (более подробно о файле /etc/inittab смотреть в man inittab). Рассматривая данный случай (относится к RedHat дистрибуции), здесь запускается скрипт выбора Display Manager.
Этот скрипт испльзует в качестве параметра файл /etc/sysconfig/desktop, в котором указывается параметр DISPLAYMANAGER с возможными вариантами (KDE, KDE1, KDE2 - соответствует kdm, GNOME - соответствует gdm, и AnotherLevel - в этом случае будет запущен xdm). В том случае, если файла /etc/sysconfig/desktop нет, тогда будет
запущен первый обнаруженный на Вашем компьютере DM. Порядок поиска gdm, kdm, xdm. Если у Вас установлены все три DM, и нет файла /etc/sysconfig/desktop, то при переходе на 5 runlevel у Вас будет запущен gdm.
3. Вносим свои коррективы.
Стоит обратить внимание на то, что DM, которым Вы предполагаете пользоваться, может быть не установлен на Вашем компьютере. Поэтому имеет смысл, прежде чем ставить эксперименты проверить его наличие. Если все программы на Вашем компьютере установлены из RPM-пакетов, тогда можно воспользоваться возможностями RPM и проверить наличие необходимых пакетов. Для kdm должен быть установлен пакет kdebase, для gdm - пакет с одноименным названием, для xdm - пакет XFree86-xdm.
3.1. Если у Вас запускается скрипт выбора DM
Самым простым решением будет создать файл /etc/sysconfig/desktop и указать в нем нужный для Вас параметр. Например, я хочу чтобы у меня загружался kdm. В таком случае содержимое /etc/sysconfig/desktop будет выглядеть следующим образом:
DISPLAYMANAGER=KDE
Можно, так же, внести изменения в сам скрипт /etc/X11/prefdm изменив порядок поиска DM на такой, при котором необходимый Вам DM будет искаться первым. Для этого вносим изменения в секцию (в настоящий момент первым ищется gdm):
if [ -z "$preferred" ]; then
if which gdm >/dev/null 2>&1; then
preferred=gdm
elif which xdm >/dev/null 2>&1; then
preferred=xdm
elif which kdm >/dev/null 2>&1; then
preferred=kdm
fi
fi
Пусть у нас будет запускаться kdm, тогда данный код будет выглядеть следующим образом:
if [ -z "$preferred" ]; then
if which kdm >/dev/null 2>&1; then
preferred=kdm
elif which gdm >/dev/null 2>&1; then
preferred=gdm
elif which xdm >/dev/null 2>&1; then
preferred=xdm
fi
fi
3.2. Скрипт выбора не запускается
В этом случае строка из /etc/inittab будет иметь вид:
x:5:respawn:/etc/X11/xdm -nodaemon
Эта строка запускает xdm по умолчанию. Чтобы у Вас запускался другой DM Вы можете просто исправить эту строку соответствующим образом. Продолжая пример, приведенный выше, будем делать все для kdm:
x:5:respawn:/etc/X11/kdm -nodaemon
3.3. После изменений
После того, как Вы внесли изменения в конфигурационные файлы и сохранили внесенные поправки, возможно несколько вариантов, выполнив которые, Вы увидите перед собой, выбранный Вами DM.
3.3.1. На зависимо от того, в какие файлы Вы вносили изменения.
Вы можете осуществить переход с 5 runlevela на 3 и обратно, что делается командой:
# init 3; init 5
3.3.2. Изменения вносились только в файл /etc/inittab
Вам необходимо выполнить команду:
# init q
3.3.3. Изменения касаются только файлов DM
В этом случае будет достаточно выполнить команду:
# killall [xkg]dm
первая буква после команды kill, в названии процесса (т.е. возможны варианты xdm, kdm, gdm), зависит от того, какой в настоящий момент DM используется.
3.3.4.Предупреждение.
Выполнение всех вышеописанных команд приведет к завершению процессов, запущенных под управлением Х-сервера. Поэтому, прежде чем выполнять эти команды, рекомендуется сохранить все что необходимо, дабы не потерять данные.
3.4. Если у Вас дистрибутив Debian.
В дистрибутиве Debian используется вариант запуска DM, как стандартного сервиса. То есть, запустить (остановить, перезапустить), например, gdm можно командой:
# /etc/init.d/gdm [start | stop | restart]
Таким образом, настройка запуска нужного менеджера производится командой chkconfig. При желании, можно самому остановить один и запустить другой менеджер.
4. Авторство и все такое
Автор: Федотов Алексей aka Sloth
Email: sloth@email.ru
Дополнения:
XMan Email: _XMan_@mail.ru
Здоровая критика и полезные дополнения принимаются.
|