xref: /csrg-svn/lib/libc/gen/daemon.c (revision 43103)
1*43103Smarc /*-
2*43103Smarc  * Copyright (c) 1990 The Regents of the University of California.
3*43103Smarc  * All rights reserved.
4*43103Smarc  *
5*43103Smarc  * %sccs.include.redist.c%
6*43103Smarc  */
7*43103Smarc 
8*43103Smarc #if defined(LIBC_SCCS) && !defined(lint)
9*43103Smarc static char sccsid[] = "@(#)daemon.c	5.1 (Berkeley) 06/15/90";
10*43103Smarc #endif /* LIBC_SCCS and not lint */
11*43103Smarc 
12*43103Smarc #include <sys/file.h>
13*43103Smarc 
14*43103Smarc daemon()
15*43103Smarc {
16*43103Smarc 	int cpid;
17*43103Smarc 
18*43103Smarc 	if ((cpid = fork()) == -1)
19*43103Smarc 		return (-1);
20*43103Smarc 	if (cpid)
21*43103Smarc 		exit(0);
22*43103Smarc 
23*43103Smarc 	(void) setsid();
24*43103Smarc 	(void) chdir("/");
25*43103Smarc 	(void) close(0);
26*43103Smarc 	(void) close(1);
27*43103Smarc 	(void) close(2);
28*43103Smarc 	(void) open("/", O_RDONLY, 0);
29*43103Smarc 	(void) dup2(0, 1);
30*43103Smarc 	(void) dup2(0, 2);
31*43103Smarc }
32