27.10 System-Shutdown
Es gibt verschiedene Programme, um Linux und BSD herunterzufahren oder neu zu starten. Die einfachste Möglichkeit besteht darin, dies via Maus über einen grafischen Login, etwa KDM, zu bewerkstelligen oder beim normalen Login-Prompt die bei den meisten Distributionen definierte Kombination Strg + Alt + Entf zu drücken.
Alle anderen Programme benötigen die Privilegien eines Systemadministrators und können daher nicht von jedermann ausgeführt werden. [Fn. Ausnahme: Benutzern wird via sudo die Berechtigung dazu erteilt.] Um das System sicher herunterzufahren, wird folgende Vorgehensweise angewandt:
- Alle Benutzer, die aktuell eingeloggt sind, werden darüber informiert, dass das System gleich oder nach Ablauf einer bestimmten Zeitspanne herunterführt.
- Neue Login-Versuche werden abgewiesen.
- Wurde eine Wartezeit definiert, so wird gewartet, bis sie abgelaufen ist. Während dieser Zeitspanne unternimmt das jeweilige Shutdown-Programm nichts.
- Das Shutdown-Programm sendet allen Prozessen das SIGTERM-Signal. Dies bietet ihnen die Möglichkeit, auf das Signal zu reagieren und sich sicher zu beenden. Editoren können so beispielsweise eine Sicherungskopie einer veränderten Datei speichern, ohne dass sich ein Benutzer darum kümmern müsste – dieser könnte sich ja gerade einen Kaffee zubereiten und vom Shutdown nichts mitbekommen.
- Anschließend wird init je nach Programm und gewünschter Aktion in den Runlevel 0 (System anhalten, halt) oder in den Runlevel 6 (System wird neu gestartet, reboot) versetzt. Vor dem eigentlichen Halt oder Reboot werden natürlich alle Dateisysteme sauber ausgehängt.
27.10.1 halt, reboot und poweroff
Die Tools halt, reboot und poweroff dienen dazu, das System herunterzufahren beziehungsweise zu rebooten. Dabei wird in der Datei /var/log/wtmp das Herunterfahren des Systems vermerkt. Sowohl halt als auch poweroff fahren das System so herunter, dass man es ausschalten kann. Bei poweroff schaltet sich der Rechner (mit Ausnahme von sehr alten Systemen) automatisch selbst ab. Ruft man halt mit dem Parameter -p auf, wird dies ebenfalls geschehen. reboot startet das System zudem neu.
Welches dieser drei Programme Sie auch verwenden, stets wird – zumindest sofern sich das System nicht im Runlevel 0 oder 6 befindet, also gerade herunterführt – ein anderes Programm, nämlich shutdown aufgerufen, um die gewünschten Aktionen durchzuführen. Schauen wir uns also shutdown einmal an.
27.10.2 shutdown
Um das System sicher und nach Ihren Wünschen herunterzufahren, sollten Sie das shutdown-Kommando verwenden. Mit ihm lässt sich das System sowohl herunterfahren als auch neu starten. Zusätzlich können Warnmeldungen an die noch eingeloggten Benutzer versendet und der genaue Zeitpunkt des Shutdowns festgelegt werden.
Parameter | Beschreibung |
-c |
Ein geplanter Shutdown wird abgebrochen. |
-F |
Führt den Dateisystem-Check nach dem Neustart durch. |
-f |
Unterbindet den eventuellen Dateisystem-Check nach dem Neustart. |
-h |
Das System kann nach dem Shutdown ausgeschaltet werden (halt). |
-r |
Das System wird nach dem Shutdown neu gestartet (reboot). |
-p |
Dieser Parameter wird nicht von jedem System unterstützt. Er sorgt dafür, dass das System nach dem Herunterfahren ausgeschaltet wird. Dieses Feature funktioniert bei sehr alten Netzteilen nicht. |
-k |
Das System wird noch nicht heruntergefahren, es wird nur eine Warnmeldung an die Terminals der Benutzer versendet. |
Zudem kann an das Kommando shutdown ein Zeitparameter übergeben werden. Im Gegensatz zum Parameter -t wird dabei nicht die zu wartende Zeit vor dem Shutdown in Sekunden angegeben, sondern der explizite Zeitpunkt des Shutdowns. Dieser Parameter muss hinter fast allen anderen stehen – hinter ihn dürfen Sie nur noch eine Warnung an die Benutzer schreiben.
Listing 27.32 shutdown nutzen
# shutdown [-t sec] [weitere Parameter] \
Zeitparameter [Warnung]
[»]Der einzige Parameter, den Sie immer übergeben müssen, ist der Shutdown-Zeitpunkt. Es gibt verschiedene Möglichkeiten, diese Zeit anzugeben. Normalerweise wird das Schlüsselwort now verwendet, um das System sofort herunterzufahren. Sie können den Zeitpunkt jedoch auch minutengenau in der Form hh:mm angeben.
Hier sehen Sie ein Beispiel für einen sofortigen Shutdown mit anschließendem Neustart und Dateisystem-Check:
Listing 27.33 So wird's gemacht.
# shutdown -rF now
Broadcast message from root (pts/0) (Mon Aug 8
20:35:27 2005):
The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
...
Rebooting the system.
Unter OpenBSD können Sie zusätzlich Shellskript-Code beim Shutdown durch shutdown, halt oder reboot ausführen, indem Sie diesen in die Datei /etc/rc.shutdown einfügen.
Anschließend sei noch erwähnt, dass man Benutzern, die unter Linux eine Shutdown-Berechtigung erhalten sollen, auch ohne sudo dieses spezielle Recht verleihen kann. Tragen Sie zu diesem Zweck die jeweiligen Benutzernamen in die Datei /etc/shutdown.allow ein.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.