Какой дебил догадался посадить дисплей менеджер на все runlevel начиная со второго?!
$ grep Default-St ./debian/slim.init
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
В Slackware, здесь невероятно просто:
Display Manager и runlevelВ Slackware нет 'runlevel 2' и уровни выполнения 2 и 5 конфигурируются как 'runlevel 3'.
'runlevel 4', - X11 с менеджером сессий:
$ sed -n '14,44p' /etc/inittab
# These are the default runlevels in 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)
id:4:initdefault:
# System initialization (runs when system boots).
si:S:sysinit:/etc/rc.d/rc.S
# Script to run when going single user (runlevel 1).
su:1S:wait:/etc/rc.d/rc.K
# Script to run when going multi user.
rc:2345:wait:/etc/rc.d/rc.M
# What to do at the "Three Finger Salute".
ca::ctrlaltdel:/sbin/shutdown -t5 -r now
# Runlevel 0 halts the system.
l0:0:wait:/etc/rc.d/rc.0
# Runlevel 6 reboots the system.
l6:6:wait:/etc/rc.d/rc.6
Переход на уровни выполнения
# init|telinit N
$ ls -l /sbin/telinit
lrwxrwxrwx 1 root root 4 июн 13 08:43 /sbin/telinit -> init*
где N - уровень выполнения
(подробнее `man init`)
Скрипт выполняющийся при переходе на 'runlevel 4', прост и последовательно перебирает дисплей менеджеры gdm kdm sddm xdm
(предполагается возможность запуска своего /etc/rc.d/rc.4.local)
$ cat /etc/rc.d/rc.4
#! /bin/sh
#
# rc.4 This file is executed by init(8) when the system is being
# initialized for run level 4 (XDM)
#
# Version: @(#)/etc/rc.d/rc.4 2.00 02/17/93
#
# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
# At least 47% rewritten by: Patrick J. Volkerding <volkerdi@slackware.com>
#
# Tell the viewers what's going to happen...
echo "Starting up X11 session manager..."
# If you'd like to start something different or in a different order than
# the options below, create your own startup script /etc/rc.d/rc.4.local
# and make it executable and it will be used instead:
if [ -x /etc/rc.d/rc.4.local ]; then
exec /bin/bash /etc/rc.d/rc.4.local
fi
# Try to use GNOME's gdm session manager. This comes first because if
# gdm is on the machine then the user probably installed it and wants
# to use it by default:
if [ -x /usr/bin/gdm ]; then
exec /usr/bin/gdm -nodaemon
fi
# Someone thought that gdm looked prettier in /usr/sbin,
# so look there, too:
if [ -x /usr/sbin/gdm ]; then
exec /usr/sbin/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
elif [ -x /usr/bin/kdm ]; then
exec /usr/bin/kdm -nodaemon
fi
# Look for SDDM as well:
if [ -x /usr/bin/sddm ]; then
exec /usr/bin/sddm
fi
# If all you have is XDM, I guess it will have to do:
if [ -x /usr/bin/xdm ]; then
exec /usr/bin/xdm -nodaemon -config /etc/X11/xdm/liveslak-xdm/xdm-config
elif [ -x /usr/X11R6/bin/xdm ]; then
exec /usr/X11R6/bin/xdm -nodaemon -config /etc/X11/xdm/liveslak-xdm/xdm-config
fi
# error
echo
echo "Hey, you don't have KDM, GDM, or XDM. Can't use runlevel 4 without"
echo "one of those installed."
sleep 30
# All done.
Если вам не нравится русская раскладка и индикатор scroll по-умолчанию, это всегда можно изменить:
$ cat /etc/X11/xorg.conf.d/30-keyboard.conf
Section "InputClass"
Identifier "keyboard-all"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "XkbLayout" "us,ru"
Option "XkbVariant" ","
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:num,lv3:ralt_switch_multikey"
EndSection
Разрешение и запрет запуска init-скриптов, снять/установить бит execute.
Все скрипты кратко, но хорошо прокомментированы и знакомство с ними не вызовет трудностей.
Весь вывод был предоставлен из последней сборки slackware-live-xfce-current версии 1.3.2.2:
http://bear.alienbase.nl/mirrors/slackware-live/