table of contents
- stretch 1.22-1
- testing 2.12-1
- stretch-backports 2.11-1~bpo9+2
- unstable 2.12-1
REBOOT(2) | Linux-Programmierhandbuch | REBOOT(2) |
BEZEICHNUNG¶
reboot - Neustart oder Strg-Alt-Entf ein-/ausschaltenÜBERSICHT¶
/* 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 magic, int magic2, int cmd, 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 cmd);
BESCHREIBUNG¶
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 wird (mit EINVAL) fehlschlagen, außer wenn magic gleich LINUX_REBOOT_MAGIC1 (0xfee1dead) und magic2 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 magic2 erlaubt. (Die hexadezimalen Werte dieser Konstanten haben eine Bedeutung.)
Das Argument cmd kann die folgenden Werte haben:
- LINUX_REBOOT_CMD_CAD_OFF
- (RB_DISABLE_CAD, 0). Strg-Alt-Delete wird ausgeschaltet. Dies bedeutet, dass das Tastenkürzel Strg-Alt-Delete veranlasst, dass ein SIGINT-Signal an Init (Prozess 1) gesandt wird, woraufhin dieser Prozess über die richtige Aktion entscheidet (möglicherweise: alle Prozesse beenden, Platten synchronisieren, Neustart).
- LINUX_REBOOT_CMD_CAD_ON
- (RB_ENABLE_CAD, 0x89abcdef). Strg-Alt-Delete wird eingeschaltet. Dies bedeutet, dass das Tastenkürzel Strg-Alt-Delete sofort die mit LINUX_REBOOT_CMD_RESTART verbundene Aktion veranlassen wird.
- LINUX_REBOOT_CMD_HALT
- (RB_HALT_SYSTEM, 0xcdef0123; seit Linux 1.1.76). Die Nachricht »System halted.« wird ausgegeben und das System wird angehalten. Falls vorhanden, wird die Steuerung an den ROM-Monitor übergeben. Wenn kein sync(2) vorausgeht, werden Daten verlorengehen.
- LINUX_REBOOT_CMD_KEXEC
- (RB_KEXEC, 0x45584543, since Linux 2.6.13). Einen Kernel ausführen, der vorher mit kexec_load(2) geladen wurde. Diese Option ist nur verfügbar, falls der Kernel mit CONFIG_KEXEC konfiguriert wurde.
- LINUX_REBOOT_CMD_POWER_OFF
- (RB_POWER_OFF, 0x4321fedc; seit Linux 2.1.30). Die Nachricht »Power down.« wird ausgegeben, das System wird gestoppt und jegliche Stromzufuhr unterbrochen, wenn möglich. Falls kein sync(2) vorausgeht, werden Daten verlorengehen.
- LINUX_REBOOT_CMD_RESTART
- (RB_AUTOBOOT, 0x1234567). Die Nachricht »Restarting system.« wird ausgegeben und es wird sofort ein Standard-Neustart ausgeführt. Wenn kein sync(2) vorausgeht, werden Daten verlorengehen.
- LINUX_REBOOT_CMD_RESTART2
- (0xa1b2c3d4; seit Linux 2.1.30). Die Nachricht »Restarting system with command '%s'« wird ausgegeben und sofort ein Neustart ausgeführt (unter Verwendung der in arg angegebenen Zeichenkette). Wenn kein sync(2) vorausgeht, werden Daten verlorengehen.
- LINUX_REBOOT_CMD_SW_SUSPEND
- (RB_SW_SUSPEND, 0xd000fce1; seit Linux 2.5.18). Einen Kernel ausführen, der vorher mit kexec_load(2) geladen wurde. Diese Option ist nur verfügbar, falls der Kernel mit CONFIG_KEXEC konfiguriert wurde.
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.
Verhalten innerhalb von PID-Namensräumen¶
Seit Linux 3.4 bewirkt dieser Aufruf, wenn reboot() von einem anderen als dem ursprünglichen PID-Namensraum (siehe pid_namespaces(7)) aufgerufen wurde, dass ein Signal an den »init«-Prozess gesandt wird. Die cmd-Werte LINUX_REBOOT_CMD_RESTART und LINUX_REBOOT_CMD_RESTART2 bewirken, dass ein SIGHUP-Signal gesandt wird, die cmd-Werte LINUX_REBOOT_CMD_POWER_OFF und LINUX_REBOOT_CMD_HALT führen zu einem SIGINT-Signal. Für die anderen cmd-Werte wird -1 zurückgeliefert und errno auf EINVAL gesetzt.RÜCKGABEWERT¶
Für die Werte von cmd, die das System stoppen oder neu starten, gibt ein erfolgreicher Aufruf von reboot() nichts zurück. Für die anderen cmd-Werte wird bei Erfolg Null zurückgegeben. Bei einem Fehler wird immer -1 zurückgegeben und errno entsprechend gesetzt.FEHLER¶
- EFAULT
- Problem bei der Abfrage von Daten aus dem Adressraum des Benutzers unter LINUX_REBOOT_CMD_RESTART2.
- EINVAL
- falsche magische Zahlen oder cmd
- EPERM
- Der aufrufende Prozess verfügt nicht über ausreichende Privilegien, um reboot() aufzurufen. Die Capability CAP_SYS_BOOT wird innerhalb seines Benutzernamensraums benötigt.
KONFORM ZU¶
reboot() ist Linux-spezifisch und sollte nicht in portierbaren Programmen benutzt werden.SIEHE AUCH¶
kexec_load(2), sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8), reboot(8)KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 4.09 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/.ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick <c.leick@vollbio.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 <debian-l10n-german@lists.debian.org>.
8. Oktober 2016 | Linux |