DAEMON(3) Linux Programmer's Manual DAEMON(3)
NAME
daemon - run in(1,8) the background
SYNOPSIS
#include <unistd.h>
int daemon(int nochdir, int noclose);
DESCRIPTION
The daemon() function is for programs wishing to detach themselves from
the controlling terminal and run in(1,8) the background as system daemons.
Unless the argument nochdir is non-zero, daemon() changes the current
working directory to the root ("/").
Unless the argument noclose is non-zero, daemon() will redirect stan-
dard input, standard output and standard error(8,n) to /dev/null.
RETURN VALUE
(This function forks, and if(3,n) the fork() succeeds, the parent does
_exit(0), so that further errors are seen by the child only.) On suc-
cess zero will be returned. If an error(8,n) occurs, daemon() returns -1
and sets the global variable errno to any of the errors specified for
the library functions fork(2) and setsid(2,8)(2).
SEE ALSO
fork(2), setsid(2,8)(2)
NOTES
The glibc implementation can also return -1 when /dev/null exists but
is not a character device with the expected major and minor numbers. In
this case errno need not be set.
HISTORY
The daemon() function first appeared in(1,8) BSD4.4.
BSD MANPAGE 1993-06-09 DAEMON(3)