]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man3/daemon.3
Added/updated glibc feature test macro requirements
[thirdparty/man-pages.git] / man3 / daemon.3
1 .\" Copyright (c) 1993
2 .\" The Regents of the University of California. All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\" must display the following acknowledgement:
14 .\" This product includes software developed by the University of
15 .\" California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\" may be used to endorse or promote products derived from this software
18 .\" without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\" @(#)daemon.3 8.1 (Berkeley) 6/9/93
33 .\" Added mentioning of glibc weirdness wrt unistd.h. 5/11/98, Al Viro
34 .TH DAEMON 3 2007-07-26 "GNU" "Linux Programmer's Manual"
35 .SH NAME
36 daemon \- run in the background
37 .SH SYNOPSIS
38 .B #include <unistd.h>
39 .sp
40 .BI "int daemon(int " nochdir ", int " noclose );
41 .sp
42 .in -4n
43 Feature Test Macro Requirements for glibc (see
44 .BR feature_test_macros (7)):
45 .in
46 .sp
47 .BR daemon ():
48 _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500)
49 .SH DESCRIPTION
50 The
51 .BR daemon ()
52 function is for programs wishing to detach themselves from the
53 controlling terminal and run in the background as system daemons.
54 .PP
55 Unless the argument
56 .I nochdir
57 is non-zero,
58 .BR daemon ()
59 changes the current working directory to the root ("/").
60 .PP
61 Unless the argument
62 .I noclose
63 is non-zero,
64 .BR daemon ()
65 will redirect standard input, standard output and standard error
66 to \fI/dev/null\fP.
67 .SH "RETURN VALUE"
68 (This function forks, and if the
69 .BR fork (2)
70 succeeds, the parent calls
71 .\" not .IR in order not to underline _
72 .BR _exit (2),
73 so that further errors are seen by the child only.)
74 On success zero will be returned.
75 If an error occurs,
76 .BR daemon ()
77 returns \-1 and sets the global variable
78 .I errno
79 to any of the errors specified for the
80 .BR fork (2)
81 and
82 .BR setsid (2).
83 .SH CONFORMING TO
84 Not in POSIX.1-2001.
85 A similar function appears on the BSDs.
86 The
87 .BR daemon ()
88 function first appeared in 4.4BSD.
89 .SH NOTES
90 The glibc implementation can also return \-1 when
91 .I /dev/null
92 exists but is not a character device with the expected
93 major and minor numbers.
94 In this case
95 .I errno
96 need not be set.
97 .SH "SEE ALSO"
98 .BR fork (2),
99 .BR setsid (2)