REBOOT(2)

NAAM
reboot - herstarten of in/uitschakelen van Ctrl-Alt-Del

SAMENVATTING
/* Since kernel version 2.1.30 there are symbolic names LINUX_REBOOT_*
   for the constants and a fourth argument to the call: */

#include <linux/reboot.h>  /* Definition of LINUX_REBOOT_* constants */
#include <sys/syscall.h>   /* Definition of SYS_* constants */
#include <unistd.h>

int syscall(SYS_reboot, int magic, int magic2, int cmd, void *arg);

/* Under glibc and most alternative libc's (including uclibc, dietlibc,
   musl and a few others), some of the constants involved have gotten
   symbolic names RB_*, and the library call is a 1-argument
   wrapper around the system call: */

#include <sys/reboot.h>    /* Definition of RB_* constants */
#include <unistd.h>

int reboot(int vlag);

BESCHRIJVING
De reboot() aanroep herstart het systeem, of schakelt de herstart toetsaanslag in/uit (afgekort CAD, omdat de standaard Ctrl-Alt-Delete is; hij kan veranderd worden met loadkeys(1)).

Deze systeem aanroep zal falen (met EINVAL) tenzij magie gelijk is aan LINUX_REBOOT_MAGIC1 (dat is: 0xfee1dead) en magie2 gelijk is aan LINUX_REBOOT_MAGIC2 (dat is: 672274793). Sinds 2.1.17 worden echter ook LINUX_REBOOT_MAGIC2A (dat is: 85072278), sinds 2.1.97 ook LINUX_REBOOT_MAGIC2B (dat is: 369367448) en sinds 2.5.71 ook LINUX_REBOOT_MAGIC2C (dat is, 537993216) toegestaan als waarde voor magie2. (De hexadecimale waardes van deze constanten hebben betekenis.)

Het vlag argument kan de volgende waardes hebben:

LINUX_REBOOT_CMD_CAD_OFF
    (RB_DISABLE_CAD. CAD wordt uitgezet. Dit betekend dat de CAD toetsaanslag een SIGINT signaal zal veroorzaken dat gezonden zal worden naar het init (proces 1), waarna dit proces kan beslissen wat een juiste actie is (wellicht: stop alle processen, synchroniseer ("sync"), en herstart).

LINUX_REBOOT_CMD_CAD_ON
    (RB_ENABLE_CAD, 0x89abcdef). CAD wordt gebruiksklaar gemaakt. Dit betekend dat de CAD toetsaanslag onmiddellijk de actie behorend bij LINUX_REBOOT_CMD_RESTART zal veroorzaken.

LINUX_REBOOT_CMD_HALT
    (RB_HALT_SYSTEM, 0xcdef0123; sinds 1.1.76). Het bericht "System halted." wordt afgedrukt, en het systeem wordt gestopt. Controle wordt gegeven aan de ROM monitor, indien die bestaat. Als niet voorafgegaan werd door een sync(2), zullen gegevens verloren gaan.

LINUX_REBOOT_CMD_KEXEC
    (RB_KEXEC, 0x45584543, vanaf Linux 2.6.13). Voer een kernel uit die eerder werd geladen met kexec_load(2). Deze optie is alleen beschikbaar als de kernel werd geconfigureerd met CONFIG_KEXEC.

LINUX_REBOOT_CMD_POWER_OFF
    (RB_POWER_OFF, 0x4321fedc; sinds 2.1.30). Het bericht "Power down." wordt afgedrukt, het systeem wordt gestopt en alle voeding wordt losgekoppeld van het systeem als dat mogelijk is. Als niet voorafgegaan door sync(2), zullen gegevens verloren gaan.

LINUX_REBOOT_CMD_RESTART
    (RB_AUTOBOOT, 0x1234567). Het bericht "Restarting system." wordt afgedrukt, en een standaard herstart wordt onmiddellijk uitgevoerd. Als niet voorafgegaan door een sync(2), zullen gegevens verloren gaan.

LINUX_REBOOT_CMD_RESTART2
    (0xa1b2c3d4; sinds 2.1.30). Het bericht "Restarting system with command '%s'" wordt afgedrukt, en een herstart (met gebruik van het opdracht-string gegeven met arg) wordt onmiddellijk uitgevoerd. Als niet voorafgegaan door een sync(2), zullen gegevens verloren gaan.

LINUX_REBOOT_CMD_SW_SUSPEND
    (RB_SW_SUSPEND, 0xd000fce1; sinds Linux 2.5.18). Het systeem wordt gestopt (in winterslaap) naar schijf. Deze optie is alleen beschikbaar als de kernel werd geconfigureerd met CONFIG_HIBERNATION.

Alleen de super-gebruiker mag reboot() gebruiken.

Het exacte gevolg van de bovenstaande acties hangt af van de architectuur. Voor de i386 architectuur doet het extra argument helemaal niets momenteel (2.1.122), maar het soort heropstart kan bepaald worden met een kernel opdracht-regel argument (`reboot=...'), het kan warm of koud zijn, en hard of door de BIOS.

  Gedrag binnen PID naamruimtes.
Sinds Linux 3.4 als reboot() wordt aangeroepen vanuit een PID naamruimte anders dan de initiële PID naamruimte met een van de cmd waardes hieronder getoond, dan zal het een "herstart" van die naamruimte uitvoeren: het "init" proces van de PID naamruimte wordt meteen beëindigd, met de effecten zoals beschreven in pid_namespaces(7).

De waarden die kunnen worden gegeven in cmd bij het aanroepen van reboot() zijn in dit geval als volgt:

LINUX_REBOOT_CMD_RESTART, LINUX_REBOOT_CMD_RESTART2
    Het "init" proces werd gestopt en wait(2) in het ouder proces rapporteert dat het kind werd gestopt met een SIGINT signaal.

LINUX_REBOOT_CMD_POWER_OFF, LINUX_REBOOT_CMD_HALT
    Het "init" proces werd gestopt en wait(2) in het ouder proces rapporteert dat het kind werd gestopt met een SIGINT signaal.

Voor de andere cmd waarden geeft reboot() -1 terug en wordt errno gezet op EINVAL.

EIND WAARDE
Voor die waarden van cmd die het systeem stoppen of herstarten zal een succesvolle aanroep van reboot() niet terug keren. Voor de andere cmd waarden wordt nul terug gegeven bij succes. In alle gevallen wordt -1 teruggegeven bij fouten en wordt errno gezet om de fout te melden.

FOUTEN

EFAULT
    Probleem bij het verkrijgen van gebruiker-ruimte data onder LINUX_REBOOT_CMD_RESTART2.

EINVAL
    Verkeerde magische nummers of vlag.

EPERM
    Het huidige proces heeft niet voldoende rechten om reboot() aan te roepen; de aanroeper moet de CAP_SYS_BOOT in zijn naamruimte hebben.

VOLDOET AAN
reboot() is Linux-eigen en zou niet gebruikt moeten worden in processen die overdraagbaar moeten zijn.

ZIE OOK
systemctl(1), systemd(1), kexec_load(2), sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8), shutdown(8)

COLOFON
Deze pagina is onderdeel van release 5.13 van het Linux man-pages-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.

VERTALING
De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com> Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID. Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.