1 .\" Copyright (c) 1999 Berkeley Software Design, Inc. All rights reserved.
3 .\" Redistribution and use in source and binary forms, with or without
4 .\" modification, are permitted provided that the following conditions
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.
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
27 .\" $FreeBSD: head/usr.sbin/daemon/daemon.8 255526 2013-09-13 19:19:21Z joel $
29 .Dd September 13, 2013
34 .Nd run detached from the controlling terminal
38 .Op Fl p Ar child_pidfile
39 .Op Fl P Ar supervisor_pidfile
41 .Ar command arguments ...
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.
49 The options are as follows:
50 .Bl -tag -width indent
52 Change the current working directory to the root
55 Redirect standard input, standard output and standard error to
57 .It Fl p Ar child_pidfile
58 Write the ID of the created process into the
63 The program is executed in a spawned child process while the
65 waits until it terminates to keep the
67 locked and removes it after the process exits.
70 owner is the user who runs the
72 regardless of whether the
74 option is used or not.
75 .It Fl P Ar supervisor_pidfile
79 .Ar supervisor_pidfile
83 The program is executed in a spawned child process while the
85 waits until it terminates to keep the
86 .Ar supervisor_pidfile
87 locked and removes it after the process exits.
89 .Ar supervisor_pidfile
90 owner is the user who runs the
92 regardless of whether the
94 option is used or not.
96 Supervise and restart the program if it has been terminated.
98 Login name of the user to execute the program under.
99 Requires adequate superuser privileges.
107 option is specified the program is executed in a spawned child process.
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
114 receives software termination signal (SIGTERM) it forwards it to the
116 Normally it will cause the child to exit, remove the pidfile(s)
121 option is useful combined with the
124 .Ar supervisor_pidfile
125 contains the ID of the supervisor
126 not the child. This is especially important if you use
128 in an rc script as the
130 option will give you the child's ID to signal when you attempt to
131 stop the service, causing
133 to restart the child.
137 utility exits 1 if an error is returned by the
139 library routine, 2 if
142 .Ar supervisor_pidfile
143 is requested, but cannot be opened, 3 if process is already running (pidfile
144 exists and is locked),
147 If the command cannot be executed, an error message is displayed on
148 standard error unless the
162 utility first appeared in