]> git.saurik.com Git - apple/libc.git/blobdiff - gen/FreeBSD/daemon.3
Libc-1439.100.3.tar.gz
[apple/libc.git] / gen / FreeBSD / daemon.3
index 04e0a519002565f91d1a387300d53b237911e85d..0df7cd1a4e372371085ffa78b8441b316496cc74 100644 (file)
@@ -9,10 +9,6 @@
 .\" 2. Redistributions in binary form must reproduce the above copyright
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\"    must display the following acknowledgement:
-.\"    This product includes software developed by the University of
-.\"    California, Berkeley and its contributors.
 .\" 4. Neither the name of the University nor the names of its contributors
 .\"    may be used to endorse or promote products derived from this software
 .\"    without specific prior written permission.
@@ -30,7 +26,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"    @(#)daemon.3    8.1 (Berkeley) 6/9/93
-.\" $FreeBSD: src/lib/libc/gen/daemon.3,v 1.14 2003/11/10 22:04:51 ghelmer Exp $
+.\" $FreeBSD: src/lib/libc/gen/daemon.3,v 1.15 2007/01/09 00:27:53 imp Exp $
 .\"
 .Dd June 9, 1993
 .Dt DAEMON 3
@@ -49,6 +45,13 @@ The
 .Fn daemon
 function is for programs wishing to detach themselves from the
 controlling terminal and run in the background as system daemons.
+The
+.Xr fork 2
+system call is used; see CAVEATS below about the environment after a
+.Fn fork
+(without a corresponding call to one of the exec routines).
+On Mac OS X, the use of this API is discouraged in favor of using
+.Xr launchd 8 .
 .Pp
 Unless the argument
 .Fa nochdir
@@ -76,6 +79,7 @@ and
 .Xr setsid 2 .
 .Sh SEE ALSO
 .Xr fork 2 ,
+.Xr launchd 8 ,
 .Xr setsid 2 ,
 .Xr sigaction 2
 .Sh HISTORY
@@ -84,6 +88,20 @@ The
 function first appeared in
 .Bx 4.4 .
 .Sh CAVEATS
+There are limits to what you can do in the child process.
+To be totally safe you should restrict yourself to only
+executing async-signal safe operations (see
+.Xr sigaction 2 )
+until such time
+as one of the exec functions is called.
+All APIs, including global data symbols, in any framework or library
+should be assumed to be unsafe after a 
+.Fn fork
+unless explicitly documented to be safe or async-signal safe.
+If you need to use these frameworks in the child 
+process, you must exec.
+In this situation it is reasonable to exec yourself.
+.Pp
 Unless the
 .Fa noclose
 argument is non-zero,