6.5. xdm

Поскольку Linux становится всё более и более полезным в качестве настольной операционной системы, многие пользователи хотели бы, чтобы машина загружалась сразу с графической оболочкой. Для этого вам понадобится сообщить Slackware загружаться непосредственно в X'ы и определить графический менеджер входа в систему. Slackware предоставляет на выбор три такие графические утилиты: xdm(1), kdm и gdm(1).

xdm - это графический менеджер входа в систему, идущий в комплекте с системой X.org. Он используется повсеместно, однако не настолько удобен по функциональности, как его альтернативы. kdm - это графический менеджер входа в систему, поставляемый вместе с KDE (K Desktop Environment). И, наконец, gdm - это менеджер, который поставляется вместе с GNOME. Любой из этих вариантов позволит вам войти в систему под любым пользователем, выбрав при этом нужный рабочий стол.

К сожалению в состав Slackware не входит удобная программа наподобие xwmconfig для выбора менеджера входа в систему, поэтому, если вы установите все три, вам может понадобиться отредактировать некоторые файлы, чтобы оставить работать только один менеджер. Но сначала мы рассмотрим загрузку с графическим режимом.

Для того, чтобы X'ы запускались во время загрузки, вам необходимо загрузиться в 4-й уровень запуска. Уровни запуска (runlevel) - это просто способ сообщения init(8)'у выполнить что-то другое, когда он запускает операционную систему. Делается это путём редактирования конфигурационного файла init'а - /etc/inittab.

# Стандартные уровни запуска Slackware:
#   0 = останов
#   1 = однопользовательский режим
#   2 = не используется (однако настроен так же, как и 3-й уровень)
#   3 = многопользовательский режим (уровень запуска по умолчанию в Slackware)
#   4 = X11 с KDM/GDM/XDM (менеджеры сеансов)
#   5 = не используется (однако настроен так же, как и 3-й уровень)
#   6 = перезагрузка

# Уровень загрузки по умолчанию (не устанавливайте в 0 или 6)
id:3:initdefault:

Для того, чтобы Slackware загружался в графический режим, нужно просто 3 заменить на 4.

  # Уровень загрузки по умолчанию (не устанавливайте в 0 или 6)
  id:4:initdefault:

Теперь Slackware загрузится в уровень запуска 4 и выполнит /etc/rc.d/rc.4. Этот файл запускает X'ы и вызывает выбранный вами менеджер входа в систему. Итак, как же нам теперь выбрать этот менеджер? Для этого есть несколько способов, и мы расскажем о них после того, как взглянем на файл rc.4.

  # Пытаемся использовать gdm - менеджер сеансов GNOME:
  if [ -x /usr/bin/gdm ]; then
    exec /usr/bin/gdm -nodaemon
  fi

  # Нет такого? Хорошо, попытаемся использовать kdm - менеджер сеансов KDE:
  if [ -x /opt/kde/bin/kdm ]; then
    exec /opt/kde/bin/kdm -nodaemon
  fi

  # Если XDM - это всё, что у вас есть, я допускаю, что нужно выполнить следующее:
  if [ -x /usr/X11R6/bin/xdm ]; then
    exec /usr/X11R6/bin/xdm -nodaemon
  fi

Как видите, rc.4 сначала проверяет, является ли gdm исполняемым файлом, и если это так - запускает его. Вторым в списке стоит kdm, а последним - xdm. Одним из способов выбора менеджера сеансов является простое удаление из системы того, который вы не хотите использовать, с помощью команды removepkg. Узнать подробнее о removepkg вы можете в Гл. 18.

Как вариант вы можете снять разрешение на выполнение с тех файлов, которые вы не хотите использовать. Работа с chmod описана в Гл. 9.

# chmod -x /usr/bin/gdm

Наконец, вы можете просто закомментировать строки с менеджером сеансов, который вы не хотите использовать.

  # Пытаемся использовать gdm - менеджер сеансов GNOME:
  # if [ -x /usr/bin/gdm ]; then
  #   exec /usr/bin/gdm -nodaemon
  # fi

  # Нет такого? Хорошо, попытаемся использовать kdm - менеджер сеансов KDE:
  if [ -x /opt/kde/bin/kdm ]; then
    exec /opt/kde/bin/kdm -nodaemon
  fi

  # Если XDM - это всё, что у вас есть, я допускаю, что нужно выполнить следующее:
  if [ -x /usr/X11R6/bin/xdm ]; then
    exec /usr/X11R6/bin/xdm -nodaemon
  fi

Любые строки, которые начинаются со знака решётки (#), считаются комментариями, и командный процессор полностью игнорирует их. Таким образом, даже если gdm установлен и является исполняемым, командный процессор (в нашем случае bash) не будет беспокоиться о его проверке.