Reboots unter Linux
Aus Fedorawiki.de
Inhaltsverzeichnis |
Vorwort
Unter Windows ist es normalerweise notwendig, selbst bei kleineren Veränderungen oder Updates den kompletten PC neuzustarten. Unter Linux ist dieses meistens unnötig. Natürlich müssen bei Konfigurationsänderungen oder Updates zum Aktivieren dieser auch die entsprechenden Programme unter Linux neugestartet werden. Ein Reboot des kompletten Systems ist allerdings nur in Ausnahmefällen nötig:
- nach Aktualisierungen des Kernels
- nach Ein- oder Ausschalten von SELinux
- nach Partitionieren der Festplatte
- bei fehlendem Wissen über die Art des benötigten Neustarts
Dem letzten Punkt soll hier ein wenig Abhilfe geschaffen werden.
Neustart über Kommandos
Folgende Shell-Befehle veranlassen den Rechner zum Neustart:
oder
Neustart von Diensten
oder alternativ
$DIENST muss dabei durch den Namen des Dienstes, der neugestartet werden soll, ersetzt werden.
Neustart des X-Servers
Ein Neustart des X-Servers ist eigentlich nur nötig, wenn Änderungen in der xorg.conf vorgenommen wurden (wie z. B. bei Änderung von Monitorwerten).
Ablauf:
- Sitzung beenden
- Strg+Alt+Backspace drücken (Backspace ist die Rücktaste: "<-")
Dadurch sollte der Bildschirm kurz schwarz werden und anschließend der Loginmanager (gdm/kdm) neu gestartet werden. Die veränderten Einstellungen werden beim Neustart übernommen. Sollte der Loginmanager ausnahmsweise nicht von selbst gestartet werden, muss ihm ein wenig nachgeholfen werden:
- Einloggen als root in einem virtuellen Terminal (Strg+Alt+F1...Strg+Alt+F6)
gdm-restart
Neustart von Programmen
Bei Updates von Programmen reicht ein einfaches Beenden und anschließendes Neustarten völlig aus. Bei Konfigurationsänderungen von grafischen Programmen ist dies meistens nicht nötig, sobald die Änderungen in der Oberfläche selbst getroffen wurden. Falls doch, wird man meistens auch darauf hingewiesen (z. B. bei KDE-Programmen oder der Installation von Themes/Extensions beim Firefox).
Neustart ohne aushängen und synchronisieren des Dateisystemes
Magischer Reboot
Wenn Sie schon 'mal einen Plattenfehler auf einem fernen Server hatten, werden Sie sich an das Gefühl erinnern als Sie folgende Kommandos ausführten:
# reboot bash: /sbin/reboot: Input/output error # shutdown -r now bash: /sbin/shutdown: Input/output error
Ein Problem der Festplatte ist offensichtlich. Diese Befehle können nicht ausgeführt werden, weil der Kernel nicht in der Lage ist /sbin/reboot und /sbin/shutdown von der Platte zu lesen, weshalb sie folglich nicht ausgeführt werden können.
Ein fsck während des nächsten Systemstarts könnte dieses Problem möglicherweise beheben, aber dazu muss das System erst mal zu einem erneuten Start gebracht werden. Befindet sich die Maschine bei einem Anbieter der Wartung und Pflege im Angebot inklusive ist, ist es möglich eine Reboot-Anfrage zu übermitteln. Aber dies geschieht selten unverzüglich.
Wäre es nicht schön, den Kern zu einem Neustart zu bewegen ohne die Festplatte zu bemühen? Nun, da gibt es einen Weg und der ist bemerkenswert einfach.
Der "magische SysRq Schlüssel" bietet einen Weg, der Kommandos über das /proc Dateisystem an den Kern übergibt. Dieser Weg wird durch den Kompilierparameter CONFIG_MAGIC_SYSRQ, welcher bei den meisten Distributionen Standard ist, ermöglicht.
Zunächst wird die magic SysRq Option aktiviert:
echo 1 > /proc/sys/kernel/sysrq
Wollen Sie die Maschine nun neustarten, muss lediglich folgerde Kommandokette ausgeführt werden:
echo b > /proc/sysrq-trigger
Nun versucht der Kern weder ein Aushängen oder eine Synchronisation der Dateisysteme. Diese Art von Neustart sollte nur im Notfall angewendet werden, aber bei einem Festplattenfehler sollte das keine Rolle spielen.
Außerdem kann der SysRq Trick, unter anderem, auch genutzt werden um Speicherinformationen auf die Konsole zu übertragen, alle Dateisysteme zu synchronisieren, alle Dateisysteme erneut im Lesemodus einzubinden, die Signale SIGTERM oder SIGKILL an alle Prozesse außer Init zu senden, die Maschine auszuschalten.
Statt ein echo nach /proc/sys/kernel/sysrq kann der Schlüssel auch während des Startvorganges gesetzt werden wenn sysctl unterstützt wird:
echo "kernel.sysrq = 1" >> /etc/sysctl.conf
Wenn Sie mehr über SysRq lernen möchten, lesen Sie die Datei sysrq.txt in der Kern-Dokumentation (Englisch).