]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man2/reboot.2
changed spelling of "super-user" to "superuser"
[thirdparty/man-pages.git] / man2 / reboot.2
1 .\" Copyright (c) 1998 Andries Brouwer (aeb@cwi.nl), 24 September 1998
2 .\"
3 .\" Permission is granted to make and distribute verbatim copies of this
4 .\" manual provided the copyright notice and this permission notice are
5 .\" preserved on all copies.
6 .\"
7 .\" Permission is granted to copy and distribute modified versions of this
8 .\" manual under the conditions for verbatim copying, provided that the
9 .\" entire resulting derived work is distributed under the terms of a
10 .\" permission notice identical to this one.
11 .\"
12 .\" Since the Linux kernel and libraries are constantly changing, this
13 .\" manual page may be incorrect or out-of-date. The author(s) assume no
14 .\" responsibility for errors or omissions, or for damages resulting from
15 .\" the use of the information contained herein. The author(s) may not
16 .\" have taken the same level of care in the production of this manual,
17 .\" which is licensed free of charge, as they might when working
18 .\" professionally.
19 .\"
20 .\" Formatted or processed versions of this manual, if unaccompanied by
21 .\" the source, must acknowledge the copyright and authors of this work.
22 .\" Modified, 27 May 2004, Michael Kerrisk <mtk-manpages@gmx.net>
23 .\" Added notes on capability requirements
24 .\"
25 .TH REBOOT 2 2004-05-27 "Linux 2.6.6" "Linux Programmer's Manual"
26 .SH NAME
27 reboot \- reboot or enable/disable Ctrl-Alt-Del
28 .SH SYNOPSIS
29 For libc4 and libc5 the library call and the system call are identical,
30 and since kernel version 2.1.30 there are symbolic names
31 LINUX_REBOOT_* for the constants and a fourth argument to the call:
32 .sp
33 .B #include <unistd.h>
34 .br
35 .B #include <linux/reboot.h>
36 .sp
37 .BI "int reboot(int " magic ", int " magic2 ", int " flag ", void *" arg );
38 .sp
39 Under glibc some of the constants involved have gotten symbolic names RB_*,
40 and the library call is a 1-argument wrapper around the 3-argument
41 system call:
42 .sp
43 .B #include <unistd.h>
44 .br
45 .B #include <sys/reboot.h>
46 .sp
47 .BI "int reboot(int " flag );
48 .SH DESCRIPTION
49 The
50 .B reboot
51 call reboots the system, or enables/disables the reboot keystroke
52 (abbreviated CAD, since the default is Ctrl-Alt-Delete;
53 it can be changed using
54 .BR loadkeys (1)).
55 .PP
56 This system call will fail (with EINVAL) unless
57 .I magic
58 equals LINUX_REBOOT_MAGIC1 (that is, 0xfee1dead) and
59 .I magic2
60 equals LINUX_REBOOT_MAGIC2 (that is, 672274793).
61 However, since 2.1.17 also LINUX_REBOOT_MAGIC2A (that is, 85072278)
62 and since 2.1.97 also LINUX_REBOOT_MAGIC2B (that is, 369367448)
63 and since 2.5.71 also LINUX_REBOOT_MAGIC2C (that is, 537993216)
64 are permitted as value for
65 .IR magic2 .
66 (The hexadecimal values of these constants are meaningful.)
67 The
68 .I flag
69 argument can have the following values:
70 .TP
71 .B LINUX_REBOOT_CMD_RESTART
72 (RB_AUTOBOOT, 0x1234567).
73 The message `Restarting system.' is printed, and a default
74 restart is performed immediately.
75 If not preceded by a
76 .BR sync (2),
77 data will be lost.
78 .TP
79 .B LINUX_REBOOT_CMD_HALT
80 (RB_HALT_SYSTEM, 0xcdef0123; since 1.1.76).
81 The message `System halted.' is printed, and the system is halted.
82 Control is given to the ROM monitor, if there is one.
83 If not preceded by a
84 .BR sync (2),
85 data will be lost.
86 .TP
87 .B LINUX_REBOOT_CMD_POWER_OFF
88 (0x4321fedc; since 2.1.30).
89 The message `Power down.' is printed, the system is stopped,
90 and all power is removed from the system, if possible.
91 If not preceded by a
92 .BR sync (2),
93 data will be lost.
94 .TP
95 .B LINUX_REBOOT_CMD_RESTART2
96 (0xa1b2c3d4; since 2.1.30).
97 The message `Restarting system with command '%s'' is printed,
98 and a restart (using the command string given in
99 .IR arg )
100 is performed immediately.
101 If not preceded by a
102 .BR sync (2),
103 data will be lost.
104 .TP
105 .B LINUX_REBOOT_CMD_CAD_ON
106 (RB_ENABLE_CAD, 0x89abcdef).
107 CAD is enabled.
108 This means that the CAD keystroke will immediately cause
109 the action associated to LINUX_REBOOT_CMD_RESTART.
110 .TP
111 .B LINUX_REBOOT_CMD_CAD_OFF
112 (RB_DISABLE_CAD, 0).
113 CAD is disabled.
114 This means that the CAD keystroke will cause a SIGINT signal to be
115 sent to init (process 1), whereupon this process may decide upon a
116 proper action (maybe: kill all processes, sync, reboot).
117 .LP
118 Only the superuser may use this function.
119 .LP
120 The precise effect of the above actions depends on the architecture.
121 For the i386 architecture, the additional argument does not do
122 anything at present (2.1.122), but the type of reboot can be
123 determined by kernel command line arguments (`reboot=...') to be
124 either warm or cold, and either hard or through the BIOS.
125 .SH "RETURN VALUE"
126 On success, zero is returned. On error, \-1 is returned, and
127 .I errno
128 is set appropriately.
129 .SH ERRORS
130 .TP
131 .B EFAULT
132 Problem with getting userspace data under LINUX_REBOOT_CMD_RESTART2.
133 .TP
134 .B EINVAL
135 Bad magic numbers or \fIflag\fP.
136 .TP
137 .B EPERM
138 The calling process has insufficient privilege to call
139 .BR reboot ;
140 the
141 .B CAP_SYS_BOOT
142 capability is required.
143 .SH "CONFORMING TO"
144 .B reboot
145 is Linux specific, and should not be used in programs intended to be portable.
146 .SH "SEE ALSO"
147 .BR sync (2),
148 .BR bootparam (7),
149 .BR capabilities (7),
150 .BR ctrlaltdel (8),
151 .BR halt (8),
152 .BR reboot (8)