]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man2/reboot.2
Formatted signal names
[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" "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 .BR 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 with 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
115 .B SIGINT
116 signal to be
117 sent to init (process 1), whereupon this process may decide upon a
118 proper action (maybe: kill all processes, sync, reboot).
119 .LP
120 Only the superuser may use this function.
121 .LP
122 The precise effect of the above actions depends on the architecture.
123 For the i386 architecture, the additional argument does not do
124 anything at present (2.1.122), but the type of reboot can be
125 determined by kernel command line arguments (`reboot=...') to be
126 either warm or cold, and either hard or through the BIOS.
127 .SH "RETURN VALUE"
128 On success, zero is returned.
129 On error, \-1 is returned, and
130 .I errno
131 is set appropriately.
132 .SH ERRORS
133 .TP
134 .B EFAULT
135 Problem with getting userspace data under LINUX_REBOOT_CMD_RESTART2.
136 .TP
137 .B EINVAL
138 Bad magic numbers or \fIflag\fP.
139 .TP
140 .B EPERM
141 The calling process has insufficient privilege to call
142 .BR reboot ();
143 the
144 .B CAP_SYS_BOOT
145 capability is required.
146 .SH "CONFORMING TO"
147 .BR reboot ()
148 is Linux specific,
149 and should not be used in programs intended to be portable.
150 .SH "SEE ALSO"
151 .BR sync (2),
152 .BR bootparam (7),
153 .BR capabilities (7),
154 .BR ctrlaltdel (8),
155 .BR halt (8),
156 .BR reboot (8)