7.2. Bootscripts

Wie immer zuerst entpacken und dann in das neue Verzeichnis wechseln:

cd /sources &&
tar xf pakete/bootscripts-ng-0.10.tar.xz &&
cd bootscripts-ng-0.10/

Nun werden die Bootscripts im System verteilt. Die eigentlichen Startscripts kommen nach /etc/runit. Von dort aus werden Symbolische Links in das Verzeichnis /var/service erzeugt. Ein paar andere Dateien kommen noch nach /etc/sysconfig. Im Verzeichnis /etc/runit liegen die Dateien 1, 2, 3. Die Datei 1 enthält alle Dienste die einmal beim Systemstart ausgeführt werden. Die Datei 2 enthält den Dienst runsvdir, dieser startet und überwacht alle Daemons. zb. sshd und syslog-ng. In der Datei 3 ist festgelegt was beim shutdown oder reboot passieren soll.

sh install-bootscripts molli
cd ..
[Anmerkung]

Anmerkung

Dieses Verzeichnis sollte nicht gelöscht werden da man es später noch braucht. Es enthält nämlich noch diverse andere Startscripts wie zum Beispiel die für Apache und viele andere Dienste.

Die Daemons Runscripte liegen im Verzeichnis /etc/service von dort werden die Dienste zu Aktivierung nach /var/service verlinkt. Da die Kommandos reboot und shutdown nicht mehr zur Verfügung stehen (sie sind Bestandteil von sysvinit), verwenden wir ab jetzt die Kommandos init 6 für den Neustart und das Kommando init 0 zum herunterfahren des Systems.

Alle Daemons werden von runsv als Vordergrundprozesse ausgeführt. So können sie unter der Kontrolle von runsv bleiben. Sollte ein Daemon aus welchen Gründen auch immer abstürzen, so ist runsv in der Lage diesen sofort neu zu starten.

Mit dem Kommando sv können die Daemons kontrolliert werden. Synopsis: sv [-v] [-w sec] command service. command ist eines der folgenden: up, down, status, once, pause, cont, hup, alarm. Es gibt noch ein paar mehr, diese sind in der entsprechenden Man Seite erklärt. Beispiel: sv down /var/service/sshd schaltet den sshd Daemon ab. Oder sv status /var/service/sshd liefert folgendes run: /var/service/sshd: (pid 1843) 309916s; run: log: (pid 1840) 309917s also der Daemon läuft seit n Sekunden und auch der Logdienst für den sshd läuft. Sendet man dem Dienst nun ein Stop Kommando sv stop /var/service/sshd so bekommt man eine solche Ausgabe sv status /var/service/sshd : down: /var/service/sshd: 8s, normally up; run: log: (pid 1840) 310647s der Daemon ist seit 8 Sekunden angehalten, aber der Logdienst läuft weiterhin. Durch setzen der Umgebungsvariable SVDIR, in unserem Fall export SVDIR="/var/service", kann man sich den Pfad sparen und braucht nur noch den Dienst angeben z.B. sv status sshd.