umount: getopt return value is int, not char
[minix.git] / man / man8 / service.8
blob4c018016f65bd14af51af0f839c8ee86747ac9a0
1 .TH SERVICE 8
2 .SH NAME
3 service \- Manage an operating system service.
4 .SH SYNOPSIS
5 .PP
6 \fBservice [-c -r -n -p] (up|run|edit|update)\fR \fI<binary|self>\fR
7 [\fB-args\fR \fI<args>\fR] [\fB-dev\fR \fI<special>\fR]
8 [\fB-devstyle\fR \fI<style>\fR] [\fB-period\fR \fI<ticks>\fR]
9 [\fB-script\fR \fI<path>\fR] [\fB-label\fR \fI<name>\fR]
10 [\fB-config\fR \fI<path>\fR] [\fB-state\fR \fI<state>\fR]
11 [\fB-maxtime\fR \fI<time>\fR]
12 .PP
13 \fBservice down\fR \fI<label>\fR
14 .PP
15 \fBservice refresh\fR \fI<label>\fR
16 .PP
17 \fBservice restart\fR \fI<label>\fR
18 .PP
19 \fBservice clone\fR \fI<label>\fR
20 .PP
21 \fBservice shutdown\fR
22 .br
23 .de FL
24 .TP
25 \\fB\\$1\\fR
26 \\$2
28 .de EX
29 .TP
30 \\fB\\$1\\fR
31 \\$2
33 .SH DESCRIPTION
34 .PP
35 The \fBservice\fR utility instructs the reincarnation server (\fBRS\fR)
36 to perform an action for a given system service (an OS server
37 or device driver). The action may concern an existing system service
38 (SHIFT+F6 to list them all), or a new system service to be started
39 (actions \fBup\fR and \fBrun\fR).
40 .br
41 .de FL
42 .TP
43 \\fB\\$1\\fR
44 \\$2
46 .de EX
47 .TP
48 \\fB\\$1\\fR
49 \\$2
51 .SH ACTIONS
52 .PP
53 .SS
54 \fBservice up\fR \fI<binary>\fR
55 .PP
56 .PP
57 Starts a new system service identified by the given \fI<binary>\fR,
58 which must be specified using an absolute path. When the service
59 unexpectedly exits (for example, as a result of a crash or a panic), \fBRS\fR
60 will intercept the event and restart the service automatically.
61 If the service fails to restart, \fBRS\fR will automatically bring
62 it down allowing for graceful degradation of service. If a critical
63 system service fails to restart, \fBRS\fR will immediately resort to
64 a system-wide panic. The \fBup\fR action takes the following options:
65 .TP
66 .BI \-c "          "
67 \fBRS\fR normally relies on the binary on the disk to restart a
68 system service. The
69 .B \-c
70 option instructs \fBRS\fR to keep an in-memory copy of the binary and
71 use the copy to restart the service upon termination. This is necessary
72 when the location on the disk may change or if the service itself is
73 required to read the binary from the disk (e.g. the disk driver).
74 .TP
75 .BI \-r "          "
76 when saving an in-memory copy, instructs \fBRS\fR to reuse and share the copy
77 of an existing service with the same program name, if available.
78 .TP
79 .BI \-n "          "
80 by default, \fBRS\fR performs blocking startup of the system service. As
81 a result, the \fBup\fR action does not terminate until the system service
82 completes initialization.
83 The
84 .B \-n
85 option changes the default behavior by performing non-blocking startup
86 and thus terminating the \fBup\fR action immediately without waiting for
87 the service to complete initialization.
88 .TP
89 .BI \-p "          "
90 instructs \fBRS\fR to keep a replica of the system service in background
91 and use the replica to restart the service upon termination. This is
92 necessary when the service itself is required to create a working
93 service instance (e.g. \fBPM\fR).
94 .TP
95 .BI \-args " <args>"
96 specifies the command line arguments to use to run the program
97 given by \fI<binary>\fR. The default is to use no arguments.
98 .TP
99 .BI \-dev " <special>"
100 specifies the device file to associate to the system service (used only for
101 device drivers). The default is to associate no device file to the service.
103 .BI \-devstyle " <style>"
104 specifies the device style to associate to the system service (used only for
105 device drivers). The list of supported device styles is available in
106 the header file \fB<minix/dmap.h>\fR.
107 The default is to associate no device style (\fBSTYLE_NDEV\fR) to the service.
109 .BI \-period " <ticks>"
110 specifies the period to use for the system service.
111 When a period is specified, \fBRS\fR sends a ping request to
112 the system service after every period. If the response does not arrive
113 in time, \fBRS\fR will kill the misbehaving service and restart a new one.
114 The period must be specified in ticks, but can be appended with HZ to
115 make it seconds. The default is to use no period for the service.
117 .BI \-script " <path>"
118 specifies the recovery script to associate to the system service. When a
119 recovery script is used, \fBRS\fR will not attempt to restart the service
120 upon termination. \fBRS\fR will instead invoke the script and
121 delegate the recovery process to it. The script may perform several
122 operations, including instructing \fBRS\fR to restart the service
123 (\fBrestart\fR action) or bring it down (\fBdown\fR  action).
124 The default is to associate no recovery script to the service.
126 .BI \-label " <name>"
127 specifies the label to use for the system service. The label is used to
128 univoquely identify the system service. The default is to use the program
129 name as the label.
131 .BI \-config " <path>"
132 specifies the absolute path of the system configuration file with the settings
133 of the system service. See
134 .IR system.conf (5)
135 for the syntax to use in the system configuration file.
136 The default is to use the global system configuration file \fB/etc/system.conf\fR.
139 \fBservice run\fR \fI<binary>\fR
142 Runs a new system service identified by the given \fI<binary>\fR,
143 which must be specified using an absolute path. Similar to
144 \fBservice up\fR \fI<binary>\fR, but instructs \fBRS\fR not to
145 restart the service upon termination. This action is currently a shorthand
146 for \fBservice up\fR \fI<binary>\fR \fB-script\fR \fI/etc/rs.single\fR, which
147 uses a recovery script that simply brings down the service upon termination.
148 This action should be only used for short-lived programs that need system
149 service privileges and do not require crash recovery support.
152 \fBservice edit\fR \fI<binary>\fR [\fB-label\fR \fI<name>\fR]
155 Edits settings of an existing system service identified by the given
156 label \fI<name>\fR. This action can be used to dynamically update the
157 properties of any system service, including those contained in the
158 boot image (e.g. \fBVM\fR). There are a few exceptions to the properties
159 that can be actually overridden dynamically. For example, the device file
160 and the device style associated to the service will no be updated. This
161 action takes the same options supported by the \fBup\fR action.
164 \fBservice update\fR \fI<binary|self>\fR
167 Live updates an existing system service with a new version identified by the
168 given \fI<binary>\fR, which must be specified using an absolute path.
169 The existing service will be identified from the label given (if explicitly
170 specified), or from the program name. If \fI<self>\fR is specified as
171 an argument instead, \fBRS\fR will perform a self update of the
172 system service (i.e. an update of the service with its own replica). This
173 is intended for testing purposes. In this case, a label \fI<name>\fR
174 must be explicitly specified. Live update support is still in an early
175 stage of development and is subject to change in future revisions. This
176 action takes all the options supported by the \fBup\fR action and the
177 following additional options:
179 .BI \-state " <state>"
180 specifies the state of the service required by the update. The default
181 is a state in which the service is blocked not processing any work.
183 .BI \-maxtime " <time>"
184 specifies the maximum amount time for the service to prepare
185 for the update. The default is 0 (unlimited).
188 \fBservice down\fR \fI<label>\fR
191 Stops an existing system service identified by the given \fI<label>\fR. \fBRS\fR
192 will bring down the service without attempting to restart it. Critical system
193 services cannot be shut down.
196 \fBservice refresh\fR \fI<label>\fR
199 Refreshes an existing system service identified by the given \fI<label>\fR.
200 \fBRS\fR will kill the service and attempt to restart it.
203 \fBservice restart\fR \fI<label>\fR
206 Restarts an existing terminated system service identified by the
207 given \fI<label>\fR. This action can only be used from a recovery script.
210 \fBservice clone\fR \fI<label>\fR
213 Clones an existing system service to create a replica \fBRS\fR will use
214 to restart the service upon termination.
217 \fBservice shutdown\fR
220 Tells \fBRS\fR the system is about to shutdown and no system service should
221 be restarted upon termination.
223 .SH EXAMPLES
224 .TP 20
225 .B service up /sbin/is -period 5HZ
226 # Start the IS server and check its status every 5 seconds.
228 .TP 20
229 .B service up /usr/sbin/dp8390 -args DPETH0=pci
230 # Start the DP8390 ethernet driver, passing one argument.
232 .TP 20
233 .B service down lance
234 # Stop the system service with label lance.
236 .SH "SEE ALSO"
238 .BR system.conf (5),
239 .BR boot (8),
240 .BR monitor (8).
241 .SH AUTHOR
242 Cristiano Giuffrida <giuffrida@cs.vu.nl>