REBOOT(2) | Linux-Programmierhandbuch | REBOOT(2) |
reboot - Neustart oder Strg-Alt-Entf ein-/ausschalten
/* Seit Kernel-Version 2.1.30 gibt es die symbolischen
Namen LINUX_REBOOT_* für die Konstanten und ein viertes
Argument für den Aufruf: */
#include <unistd.h>
#include <linux/reboot.h>
int reboot(int Magik, int Magik2, int Befehl, void *Arg);
/* Unter Glibc und der meisten alternativen Libcs (darunter
Uclibc,
Dietlibc, Musl und einige andere) haben einige beteiligte Konstanten
symbolische RB_*-Namen bekommen und der Bibliotheksaufruf ist ein
Ein-Argument-Wrapper des Systemaufrufs: */
#include <unistd.h>
#include <sys/reboot.h>
int reboot(int Befehl);
Der reboot()-Aufruf startet das System neu oder schaltet den Tastendruck für den Neustart ein/aus (Strg-Alt-Entf, englisch CAD für Ctrl-Alt-Delete; er kann mittels loadkeys(1) geändert werden).
Dieser Systemaufruf schlägt (mit dem Fehler EINVAL) fehl, außer wenn Magik gleich LINUX_REBOOT_MAGIC1 (0xfee1dead) und Magik2 gleich LINUX_REBOOT_MAGIC2 (672274793) ist. Seit 2.1.17 ist jedoch auch LINUX_REBOOT_MAGIC2A (85072278) und seit 2.1.97 außerdem LINUX_REBOOT_MAGIC2B (369367448) und seit 2.5.71 auch LINUX_REBOOT_MAGIC2C (537993216) als Wert für Magik2 erlaubt. (Die hexadezimalen Werte dieser Konstanten haben eine Bedeutung.)
Das Argument Befehl kann die folgenden Werte haben:
Nur der Superuser kann reboot() aufrufen.
Die genauen Auswirkungen der vorangehenden Aktionen hängen von der Architektur ab. Für die i386-Architektur bewirkt das zusätzliche Argument derzeit nichts (2.1.122), aber der Typ des Neustarts kann durch Kernel-Befehlszeilenargumente (»reboot=…«) festgelegt werden, um entweder einen Warm- oder Kaltstart entweder hart oder über das BIOS durchzuführen.
Wird reboot() in einem vom ursprünglichen PID-Namensraum verschiedenen Namensraum mit einem der nachfolgend aufgeführten Befehl-Werte aufgerufen, dann führt es seit Linux 3.4 einen »Neustart« dieses Namensraumes durch: der »init«-Prozess des PID-Namensraums wird sofort mit den in pid_namespaces(7) beschriebenen Effekten beendet.
Die Werte, die in Befehl beim Aufruf von reboot() übergeben werden können, sind in diesem Fall die folgenden:
Für andere Werte in Befehl liefert reboot() -1 zurück und errno wird auf EINVAL gesetzt.
Für die Werte von Befehl, die das System stoppen oder neu starten, gibt ein erfolgreicher Aufruf von reboot() nichts zurück. Für die anderen Befehl-Werte wird bei Erfolg Null zurückgegeben. Bei einem Fehler wird immer -1 zurückgegeben und errno entsprechend gesetzt.
reboot() ist Linux-spezifisch und sollte nicht in portierbaren Programmen benutzt werden.
systemctl(1), systemd(1), kexec_load(2), sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8), shutdown(8)
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick <c.leick@vollbio.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
6. März 2019 | Linux |