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:

       #include <unistd.h>
       #include <linux/reboot.h>

       int reboot (int magic, int magic2, int flag, 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:

       #include <unistd.h>
       #include <sys/reboot.h>

       int reboot (int flag);


       The reboot call reboots the  system,  or  enables/disables
       the  reboot  keystroke (abbreviated 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) are permitted as value  for  magic2.   (The
       hexadecimal  values  of  these  constants are meaningful.)
       The flag argument can have the following values:

              (RB_AUTOBOOT, 0x1234567).  The message  `Restarting
              system.'  is printed, and a default restart is per­
              formed immediately.  If not preceded by a  sync(2),
              data will be lost.

              (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.

              (0x4321fedc;  since  2.1.30).   The  message `Power
              down.' is printed, the system is stopped,  and  all

              (0xa1b2c3d4; since 2.1.30).  The message  `Restart­
              ing  system  with  command  '%s'' is printed, and a
              restart (using the command string given in arg)  is
              performed   immediately.   If  not  preceded  by  a
              sync(2), data will be lost.

              (RB_ENABLE_CAD, 0x89abcdef).  CAD is enabled.  This
              means that the CAD keystroke will immediately cause
              the action associated to  LINUX_REBOOT_CMD_RESTART.

              (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 pro­
              cess may decide upon a proper action  (maybe:  kill
              all processes, sync, reboot).

       Only the super-user may use this function.

       The  precise  effect  of  the above actions depends on the
       architecture.  For the i386 architecture,  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.


       On success, zero is returned.  On error, -1  is  returned,
       and errno is set appropriately.


       EINVAL Bad magic numbers or flag.

       EPERM  A non-root user attempts to call reboot.


       reboot  is  Linux specific, and should not be used in pro­
       grams intended to be portable.


       sync(2), bootparam(7), ctrlaltdel(8), halt(8), reboot(8)