REBOOT(2) Linux Programmer's Manual REBOOT(2)
reboot - reboot or enable/disable Ctrl-Alt-Del
/* For libc4 and libc5 the library call and the system call
are identical, and since kernel version 2.1.30 there are
symbolic names LINUX_REBOOT_* for the constants and a
fourth argument to the call: */
int reboot(int magic, int magic2, int cmd, void *arg);
/* Under glibc some of the constants involved have gotten
symbolic names RB_*, and the library call is a 1-argument
wrapper around the 3-argument system call: */
int reboot(int cmd);
The reboot() call reboots the system, or enables/disables the reboot keystroke (abbrevi-
ated CAD, since the default is Ctrl-Alt-Delete; it can be changed using loadkeys(1)).
This system call will fail (with EINVAL) unless magic equals LINUX_REBOOT_MAGIC1 (that is,
0xfee1dead) and magic2 equals LINUX_REBOOT_MAGIC2 (that is, 672274793). However, since
2.1.17 also LINUX_REBOOT_MAGIC2A (that is, 85072278) and since 2.1.97 also
LINUX_REBOOT_MAGIC2B (that is, 369367448) and since 2.5.71 also LINUX_REBOOT_MAGIC2C (that
is, 537993216) are permitted as value for magic2. (The hexadecimal values of these con-
stants are meaningful.) The cmd argument can have the following values:
(RB_DISABLE_CAD, 0). CAD is disabled. This means that the CAD keystroke will
cause a SIGINT signal to be sent to init (process 1), whereupon this process may
decide upon a proper action (maybe: kill all processes, sync, reboot).
(RB_ENABLE_CAD, 0x89abcdef). CAD is enabled. This means that the CAD keystroke
will immediately cause the action associated with LINUX_REBOOT_CMD_RESTART.
(RB_HALT_SYSTEM, 0xcdef0123; since 1.1.76). The message "System halted." is
printed, and the system is halted. Control is given to the ROM monitor, if there
is one. If not preceded by a sync(2), data will be lost.
LINUX_REBOOT_CMD_KEXEC (since Linux 2.6.13)
Execute a kernel that has been loaded earlier with kexec_load(2). This option is
available only if the kernel was configured with CONFIG_KEXEC.
(0x4321fedc; since 2.1.30). The message "Power down." is printed, the system is
stopped, and all power is removed from the system, if possible. If not preceded by
a sync(2), data will be lost.
(RB_AUTOBOOT, 0x1234567). The message "Restarting system." is printed, and a
default restart is performed immediately. If not preceded by a sync(2), data will
(0xa1b2c3d4; since 2.1.30). The message "Restarting system with command '%s'" is
printed, and a restart (using the command string given in arg) is performed immedi-
ately. If not preceded by a sync(2), data will be lost.
Only the superuser may call reboot().
The precise effect of the above actions depends on the architecture. For the i386 archi-
tecture, the additional argument does not do anything at present (2.1.122), but the type
of reboot can be determined by kernel command-line arguments ("reboot=...") to be either
warm or cold, and either hard or through the BIOS.
For the values of cmd that stop or restart the system, a successful call to reboot() does
not return. For the other cmd values, zero is returned on success. In all cases, -1 is
returned on failure, and errno is set appropriately.
EFAULT Problem with getting user-space data under LINUX_REBOOT_CMD_RESTART2.
EINVAL Bad magic numbers or cmd.
EPERM The calling process has insufficient privilege to call reboot(); the CAP_SYS_BOOT
capability is required.
reboot() is Linux-specific, and should not be used in programs intended to be portable.
sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8), reboot(8)
This page is part of release 3.53 of the Linux man-pages project. A description of the
project, and information about reporting bugs, can be found at
Linux 2010-10-31 REBOOT(2)