reboot
Table des matières
Retour à l'index
NOM
reboot - Redémarrer la machine, ou activer/désactiver Ctrl-Alt-Suppr.
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
/* Depuis Linux 2.1.30 du noyau, il existe des noms symboliques
LINUX_REBOOT_* pour les constantes et un quatrième
argument à l'appel : */
#include <linux/reboot.h> /* Définition des constantes LINUX_REBOOT_* */
#include <sys/syscall.h> /* Définition des constantes SYS_* */
#include <unistd.h>
int syscall(SYS_reboot, int magic, int magic2, int op, void *arg);
/* Avec glibc et la plupart des libc alternatives (comme uclibc,
dietlibc, musl et quelques autres), certaines des constantes
concernées ont des noms symboliques RB_*, et la fonction de
bibliothèque est une enveloppe à 1 argument encapsulant l'appel
système à 3 arguments : */
#include <sys/reboot.h> /* Définition des constantes RB_* */
#include <unistd.h>
int reboot(int op);
DESCRIPTION
L'appel système reboot() fait redémarrer le système, ou active/désactive
la séquence de touches de redémarrage (Ctrl-Alt-Suppr par défaut mais cela
peut être modifié en utilisant loadkeys(1)). Ces touches sont abrégées en
CAD pour Ctrl-Alt-Del.
Cet appel système échouera (avec EINVAL) sauf si magic vaut
LINUX_REBOOT_MAGIC1 (c'est-à-dire 0xfee1dead) et si magic2 vaut
LINUX_REBOOT_MAGIC2 (qui est 0x28121969). Toutefois, sont également
autorisées pour magic2 les valeurs LINUX_REBOOT_MAGIC2A (qui vaut
0x05121996) depuis Linux 2.1.17, LINUX_REBOOT_MAGIC2B (valant 0x16041998)
depuis Linux 2.1.97 et LINUX_REBOOT_MAGIC2C (valant 0x20112000) depuis
Linux 2.5.71. Les valeurs hexadécimales de ces constantes ont un sens.
L'argument op peut prendre l'une des valeurs suivantes :
- LINUX_REBOOT_CMD_CAD_OFF
-
(RB_DISABLE_CAD, 0). Les touches de redémarrage Ctrl-Alt-Suppr sont
désactivées. Cela signifie que la frappe de ces touches enverra un signal
SIGINT au processus 1 (init). Celui-ci pourra alors décider de l'action
appropriée à enclencher (généralement tuer tous les processus, démonter la
plupart des systèmes de fichiers, sync, et redémarrer).
- LINUX_REBOOT_CMD_CAD_ON
-
(RB_ENABLE_CAD, 0x89abcdef). Les touches de redémarrage Ctrl-Alt-Suppr
sont autorisées. Cela signifie que la frappe de ces touches déclenchera
l'action associée à LINUX_REBOOT_CMD_RESTART immédiatement.
- LINUX_REBOOT_CMD_HALT
-
(RB_HALT_SYSTEM, 0xcdef0123; depuis Linux 1.1.76). Le message « System
halted. » est affiché et le système est arrêté. Le contrôle est transmis au
moniteur en ROM s'il y en a un. Si cet appel n'est pas précédé par un
sync(2), des données seront perdues.
- LINUX_REBOOT_CMD_KEXEC
-
(RB_KEXEC, 0x45584543, depuis Linux 2.6.13). Exécuter un noyau qui a été
préalablement chargé par kexec_load(2). Cette option n'est disponible que
si le noyau a été configuré avec CONFIG_KEXEC.
- LINUX_REBOOT_CMD_POWER_OFF
-
(RB_POWER_OFF, 0x4321fedc; depuis 2.1.30). Le message « Power down. »
est affiché, et tout le système est mis hors-tension si possible. Si cet
appel n'est pas précédé par un sync(2), des données seront perdues.
- LINUX_REBOOT_CMD_RESTART
-
(RB_AUTOBOOT, 0x1234567). Le message « Restarting system. » est affiché
et un redémarrage est initialisé immédiatement. Si cet appel n'est pas
précédé par un sync(2), des données seront perdues.
- LINUX_REBOOT_CMD_RESTART2
-
(0xa1b2c3d4; depuis Linux 2.1.30). Le message « Restarting system with
command '%s' » est affiché et un redémarrage (en utilisant la chaîne
de commande fournie dans arg) est enclenché immédiatement. Si cet appel
n'est pas précédé par un sync(2), des données seront perdues.
- LINUX_REBOOT_CMD_SW_SUSPEND
-
(RB_SW_SUSPEND, 0xd000fce1; depuis Linux 2.5.18). Le système est en
hibernation. Cette option n'est disponible que si le noyau a été configuré
avec CONFIG_HIBERNATION.
Seul le superutilisateur peut appeler reboot().
L'effet exact des actions décrites ci-dessus dépend de l'architecture. Pour
les i386, l'argument supplémentaire ne sert à rien à ce jour (2.1.22), mais
le type de redémarrage peut être sélectionné par un argument en ligne de
commande du noyau (« reboot=... ») afin d'être un redémarrage à chaud, à
froid, matériel ou par le BIOS.
Comportement dans les espaces de noms des PID
Depuis Linux 3.4, si reboot() est appelé depuis un espace de noms de PID
autre que celui d'origine avec l'une des valeurs de op listées
ci-dessous, il effectue un « redémarrage » de cet espace de noms : le
processus « init » de l'espace de noms du PID est immédiatement arrêté avec
les effets décrits dans pid_namespaces(7).
Les valeurs pouvant être données dans op lors de l'appel à reboot()
sont dans ce cas :
- LINUX_REBOOT_CMD_RESTART
-
LINUX_REBOOT_CMD_RESTART2
Le processus « init » est arrêté et wait(2) dans le processus parent
rapporte qu'un processus enfant a été arrêté avec le signal SIGHUP.
- LINUX_REBOOT_CMD_POWER_OFF
-
LINUX_REBOOT_CMD_HALT
Le processus « init » est arrêté et wait(2) dans le processus parent
rapporte qu'un processus enfant a été arrêté avec le signal SIGINT.
Pour les autres valeurs de op, reboot() renvoie -1 et errno est
réglé à EINVAL.
VALEUR RENVOYÉE
Pour les valeurs de op qui arrêtent ou redémarrent le système, un appel
réussi à reboot() ne rend pas la main. Pour les autres valeurs de
op, 0 est renvoyé en cas de succès. Dans tous les cas, -1 est renvoyé en
cas d'échec, et errno est positionnée pour préciser l'erreur.
ERREURS
- EFAULT
-
Problème lors de la récupération de données espace utilisateur sous
LINUX_REBOOT_CMD_RESTART2.
- EINVAL
-
Mauvais nombres magiques ou mauvaise valeur de op.
- EPERM
-
Le processus appelant n'a pas les privilèges suffisants pour invoquer
reboot() ; l'appelant doit avoir la capacité CAP_SYS_BOOT dans son
espace de noms utilisateur.
STANDARDS
Linux.
VOIR AUSSI
systemctl(1), systemd(1), kexec_load(2), sync(2),
bootparam(7), capabilities(7), ctrlaltdel(8), halt(8),
shutdown(8)
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>,
Thomas Vincent <tvincent@debian.org>
et
Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- Comportement dans les espaces de noms des PID
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- STANDARDS
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:04 GMT, September 19, 2025