6.5 xdm

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

xdm - это графический менеджер входа в систему, идущий в комплекте с системой X.org system. Он присутствует всегда, однако не настолько удобен по функциональности, как его альтернативные варианты. kdm - это графический login-менеджер, поставляемый вместе с 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'ы и вызывает выбранный вами менеджер входа в систему. Итак, как же нам теперь выбрать этот login-менеджер? для этого есть несколько способов и мы расскажем о их после того, как взглянем на файл 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 вы можете в Chapter 18.

Как вариант вы можете снять разрешение на выполнение с тех файлов, которые вы не хотите использовать. Работа с chmod описана в Chapter 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) не будет беспокоиться о его проверке.