6.55. Sysvinit-2.85

Das Sysvinit Paket enhält Programme, mit denen Sie das Starten, Ausführen und Beenden des Systems kontrollieren können.

Geschätzte Kompilierzeit: 0.1 SBU

Ungefähr benötigter Festplattenplatz: 0.9 MB

Sysvinit ist abhängig von: Binutils, Coreutils, GCC, Glibc und Make

6.55.1. Installation von Sysvinit

Sysvinit-2.85 enthält einen „Pufferüberlauf-Fehler“. Unter bestimmten Umständen ändert es Werte aus Umgebungsvariablen. Beheben Sie das Problem:

patch -Np1 -i ../sysvinit-2.85-proclen-1.patch

Wenn Runlevel gewechselt werden (zum Beispiel beim Herunterfahren des Systems), sendet init Signale an alle Programme, die es gestartet hat. Init gibt „Sending processes the TERM signal“ auf dem Bildschirm aus. Das sieht aber so aus, als ob init diese Signale an alle laufenden Programme sendet. Um diese Verwirrung zu vermeiden, können Sie die Quellen so modifizieren, dass es sich besser liest: „Sending processes started by init the TERM signal“:

sed -i 's@Sending processes@& started by init@g' \
    src/init.c

Kompilieren Sie das Paket:

make -C src

Installieren Sie das Paket:

make -C src install

6.55.2. Einrichten von Sysvinit

Erstellen Sie die neue Datei /etc/inittab indem Sie das folgende Kommando eingeben:

cat > /etc/inittab << "EOF"
# Begin /etc/inittab

id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc sysinit

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

su:S016:once:/sbin/sulogin

1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600

# End /etc/inittab
EOF

Der Parameter -I '\033(K' sorgt dafür, dass agetty als erstes diese Escape-Sequenz an das Terminal sendet. Diese Sequenz schaltet die Konsole auf einen benutzerdefinierten Zeichensatz um; dieser kann mit setfont eingestellt werden. Die Konsole-Initskripte aus dem LFS-Bootskript-Paket benutzen setfont während dem Start. Das Senden dieser Sequenz ist für Personen wichtig, die nicht-ISO 8859-1 Bildschirmschriften benutzen und hat keinen Effekt für englischsprachige Benutzer.

6.55.3. Inhalt von Sysvinit

Installierte Programme: halt, init, killall5, last, lastb (Link auf last), mesg, pidof (Link auf killall5), poweroff (Link auf halt), reboot (Link auf halt), runlevel, shutdown, sulogin, telinit (Link auf init), utmpdump und wall

Kurze Beschreibungen

halt

Ruft üblicherweise shutdown mit dem Schalter -h auf, ausser wenn der aktuelle Runlevel 0 ist, dann teilt es dem Kernel mit, das System anzuhalten. Vorher notiert es in /var/log/wtmp, dass das System nun heruntergefahren wird.

init

Der erste gestartete Prozess nachdem der Kernel die Hardware initialisiert hat. Init übernimmt den Bootvorgang und startet alle anstehenden Programme.

killall5

Sendet ein Signal an alle Prozesse, ausser denen in der eigenen Sitzung—so beendet es nicht die Programme, die das Skript ausführen welches es aufgerufen hat

last

Zeigt, welcher Benutzer als letztes eingeloggt und ausgeloggt hat, indem es die Datei /var/log/wtmp durchsucht. Es kann auch Systemstarts und -stopps sowie Wechsel der Runlevel zeigen.

lastb

Zeigt die letzten fehlgeschlagenen Login-Versuche, die in /var/log/btmp protokolliert wurden

mesg

Kontrolliert, welche anderen Benutzer Nachrichten auf das aktuelle Terminal senden können

pidof

Gibt die PIDs eines Programms aus

poweroff

Weist den Kernel an, das System anzuhalten und den Computer auszuschalten. Schauen Sie auch nach halt.

reboot

Weist den Kernel an, das System neu zu starten. Schauen Sie auch nach halt.

runlevel

Zeigt den vorigen und den aktuellen Runlevel an. Entnimmt die Information aus /var/run/utmp.

shutdown

Fährt das System sicher herunter, sendet entsprechende Signale an alle Prozesse und benachrichtig alle angemeldeten Benutzer

sulogin

Erlaubt root, sich einzuloggen. Es wird normalerweise von init gestartet, wenn das System im Einbenutzermodus gestartet wurde.

telinit

Weist init an, in den angegebenen Runlevel zu wechseln

utmpdump

Zeigt den Inhalt der angegebenen Logindatei in einem benutzerfreundlicheren Format an

wall

Schreibt eine Nachricht an alle angemeldeten Benutzer