make upgrade: Clear out installer files conditionally
[dragonfly.git] / usr.sbin / daemon / daemon.8
1 .\" Copyright (c) 1999 Berkeley Software Design, Inc. All rights reserved.
2 .\"
3 .\" Redistribution and use in source and binary forms, with or without
4 .\" modification, are permitted provided that the following conditions
5 .\" are met:
6 .\" 1. Redistributions of source code must retain the above copyright
7 .\"    notice, this list of conditions and the following disclaimer.
8 .\" 2. Redistributions in binary form must reproduce the above copyright
9 .\"    notice, this list of conditions and the following disclaimer in the
10 .\"    documentation and/or other materials provided with the distribution.
11 .\" 3. Berkeley Software Design Inc's name may not be used to endorse or
12 .\"    promote products derived from this software without specific prior
13 .\"    written permission.
14 .\"
15 .\" THIS SOFTWARE IS PROVIDED BY BERKELEY SOFTWARE DESIGN INC ``AS IS'' AND
16 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 .\" ARE DISCLAIMED.  IN NO EVENT SHALL BERKELEY SOFTWARE DESIGN INC BE LIABLE
19 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 .\" SUCH DAMAGE.
26 .\"
27 .\" $FreeBSD: head/usr.sbin/daemon/daemon.8 255526 2013-09-13 19:19:21Z joel $
28 .\"
29 .Dd September 13, 2013
30 .Dt DAEMON 8
31 .Os
32 .Sh NAME
33 .Nm daemon
34 .Nd run detached from the controlling terminal
35 .Sh SYNOPSIS
36 .Nm
37 .Op Fl cfr
38 .Op Fl p Ar child_pidfile
39 .Op Fl P Ar supervisor_pidfile
40 .Op Fl u Ar user
41 .Ar command arguments ...
42 .Sh DESCRIPTION
43 The
44 .Nm
45 utility detaches itself from the controlling terminal and
46 executes the program specified by its arguments.
47 Privileges may be lowered to the specified user.
48 .Pp
49 The options are as follows:
50 .Bl -tag -width indent
51 .It Fl c
52 Change the current working directory to the root
53 .Pq Dq Pa / .
54 .It Fl f
55 Redirect standard input, standard output and standard error to
56 .Pa /dev/null .
57 .It Fl p Ar child_pidfile
58 Write the ID of the created process into the
59 .Ar child_pidfile
60 using the
61 .Xr pidfile 3
62 functionality.
63 The program is executed in a spawned child process while the
64 .Nm
65 waits until it terminates to keep the
66 .Ar child_pidfile
67 locked and removes it after the process exits.
68 The
69 .Ar child_pidfile
70 owner is the user who runs the
71 .Nm
72 regardless of whether the
73 .Fl u
74 option is used or not.
75 .It Fl P Ar supervisor_pidfile
76 Write the ID of the
77 .Nm
78 process into the
79 .Ar supervisor_pidfile
80 using the
81 .Xr pidfile 3
82 functionality.
83 The program is executed in a spawned child process while the
84 .Nm
85 waits until it terminates to keep the
86 .Ar supervisor_pidfile
87 locked and removes it after the process exits.
88 The
89 .Ar supervisor_pidfile
90 owner is the user who runs the
91 .Nm
92 regardless of whether the
93 .Fl u
94 option is used or not.
95 .It Fl r
96 Supervise and restart the program if it has been terminated.
97 .It Fl u Ar user
98 Login name of the user to execute the program under.
99 Requires adequate superuser privileges.
100 .El
101 .Pp
102 If the
103 .Fl p ,
104 .Fl P
105 or
106 .Fl r
107 option is specified the program is executed in a spawned child process.
108 The
109 .Nm
110 waits until it terminates to keep the pid file(s) locked and removes them
111 after the process exits or restarts the program.
112 In this case if the monitoring
113 .Nm
114 receives software termination signal (SIGTERM) it forwards it to the
115 spawned process.
116 Normally it will cause the child to exit, remove the pidfile(s)
117 and then terminate.
118 .Pp
119 The
120 .Fl P
121 option is useful combined with the
122 .Fl r
123 option as
124 .Ar supervisor_pidfile
125 contains the ID of the supervisor
126 not the child. This is especially important if you use
127 .Fl r
128 in an rc script as the
129 .Fl p
130 option will give you the child's ID to signal when you attempt to
131 stop the service, causing
132 .Nm
133 to restart the child.
134 .Sh EXIT STATUS
135 The
136 .Nm
137 utility exits 1 if an error is returned by the
138 .Xr daemon 3
139 library routine, 2 if
140 .Ar child_pidfile
141 or
142 .Ar supervisor_pidfile
143 is requested, but cannot be opened, 3 if process is already running (pidfile
144 exists and is locked),
145 otherwise 0.
146 .Sh DIAGNOSTICS
147 If the command cannot be executed, an error message is displayed on
148 standard error unless the
149 .Fl f
150 flag is specified.
151 .Sh SEE ALSO
152 .Xr setregid 2 ,
153 .Xr setreuid 2 ,
154 .Xr daemon 3 ,
155 .Xr exec 3 ,
156 .Xr pidfile 3 ,
157 .Xr termios 4 ,
158 .Xr tty 4
159 .Sh HISTORY
160 The
161 .Nm
162 utility first appeared in
163 .Fx 4.7 .