DAEMON(3) Linux Programmer s Manual DAEMON(3)

NAME daemon - run in 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 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 to /dev/null.

RETURN VALUE (This function forks, and if 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 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).

SEE ALSO fork(2), setsid(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.

CONFORMING TO Not in POSIX.1-2001. A similar function appears on the BSDs. The dae- mon() function first appeared in 4.4BSD.

BSD MANPAGE 1993-06-09 DAEMON(3)