6.5 xdm

Linux staje się coraz bardziej popularnym systemem na komputery domowe. Wielu użytkowników uzna za wygodne by maszyna bootowała się bezpośrednio do środowiska graficznego. Aby tego dokonać należy poinformować Slackware aby bootował się prosto do X'ów oraz wybrać odpowiedni menedżer logownania. Slackware dostarcza trzech takich narzędzi: xdm(1), kdm, oraz gdm(1).

xdm to graficzny menedżer logowania dostarczany razem z systemem X.org. Jest on obecny w każdym systemie lecz nie jest tak funkcjonalny jak programy alternatywne. kdm to menedżer dostarczany z KDE, gdm natomiast z GNOME. Każdy z nich pozwoli na zalogowanie się jako dowolny użytkownik i wybór menedżera okien/desktopu.

Niestety Slackware nie oferuje żadnego ładnego programu takiego jak xwmconfig służącego do wybrania menedżera logowania. Jeżeli więc zainstalowane zostały wszystkie trzy, należy wyedytować plik konfiguracyjny w celu dokonania wyboru. Najpierw jednek omówione zostanie bootowanie od razu do graficznego środowiska.

Aby od razu po bootowaniu uruchamiane były X'y, należy wybrać runlevel 4. Runlevel'e są sposobem na poinformowanie init(8)'a by wykonał określone czynności podczas startu systemu. Dokonuje się tego poprzez edycję pliku konfiguracyjnego init'a - /etc/inittab.

# These are the default runlevels in Slackware:
## (Domyślne runlevele w slackware)
#   0 = halt
#   1 = single user mode
#   2 = unused (but configured the same as runlevel 3)
#   3 = multiuser mode (default Slackware runlevel)
#   4 = X11 with KDM/GDM/XDM (session managers)
#   5 = unused (but configured the same as runlevel 3)
#   6 = reboot

# Default runlevel. (Do not set to 0 or 6)
## Domyślny runlevel. (Nie ustawiać na 0 lub 6)
id:3:initdefault:

Aby kazać Slackware bootować się od razu do środowiska graficznego należy porpostu zmienić 3 na 4.

  # Default runlevel. (Do not set to 0 or 6)
  id:4:initdefault:

Teraz domyślnym runlevelem dla Slackware będzie 4. Wykonany zostanie plik /etc/rc.d/rc.4. W nim uruchomione zostaną X'y i wybrany menedżer logowania. W jaki sposób więc wybiera się ten ostatni? Jest kilka sposobów aby tego dokonać. Najpierw jednak warto przyjrzeć się plikowi rc.4.

  # Try to use GNOME's gdm session manager:
  if [ -x /usr/bin/gdm ]; then
    exec /usr/bin/gdm -nodaemon
  fi

  # Not there?  OK, try to use KDE's kdm session manager:
  if [ -x /opt/kde/bin/kdm ]; then
    exec /opt/kde/bin/kdm -nodaemon
  fi

  # If all you have is XDM, I guess it will have to do:
  if [ -x /usr/X11R6/bin/xdm ]; then
    exec /usr/X11R6/bin/xdm -nodaemon
  fi

Jak widać powyżej rc.4 najpierw sprawdza czy gdm ma prawa do wykonywania. Jeżeli tak to go uruchamia. Drugi na liście jest kdm i w końcu xdm. Jeden ze sposobów na wybranie menedżea logowania jest usunięcie pozostałych. Należy do tego celu użyć narzędzia removepkg i usunąć cały pakiet. Aby dowiedzieć się więcej o removepkg zobacz Rozdział 18.

Opcjonalnie można zabrać prawa do wykonywania z plików które nie będą używane. Do tego celu służy polecenie chmod szerzej omawiane w Rozdział 9.

# chmod -x /usr/bin/gdm

Ostatnim sposobem jest zakomentowanie odpowiednich linii rc.4.

  # Try to use GNOME's gdm session manager:
  # if [ -x /usr/bin/gdm ]; then
  #   exec /usr/bin/gdm -nodaemon
  # fi

  # Not there?  OK, try to use KDE's kdm session manager:
  if [ -x /opt/kde/bin/kdm ]; then
    exec /opt/kde/bin/kdm -nodaemon
  fi

  # If all you have is XDM, I guess it will have to do:
  if [ -x /usr/X11R6/bin/xdm ]; then
    exec /usr/X11R6/bin/xdm -nodaemon
  fi

Każda linia zaczynająca się znakiem hash (#) uznawana jest jako komentarz i jest ignorowana przez powłokę. W powyższym przykładzie nawet jeżeli gdm byłby zainstalowany i wykonywalny shell (w tym wypadku bash) nie będzie tego sprawdzał.

Grenlandia 2012