|
|
1.1 root 1: /*-
2: * Copyright (c) 1990 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted provided
6: * that: (1) source distributions retain this entire copyright notice and
7: * comment, and (2) distributions including binaries display the following
8: * acknowledgement: ``This product includes software developed by the
9: * University of California, Berkeley and its contributors'' in the
10: * documentation or other materials provided with the distribution and in
11: * all advertising materials mentioning features or use of this software.
12: * Neither the name of the University nor the names of its contributors may
13: * be used to endorse or promote products derived from this software without
14: * specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
16: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
17: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #if defined(LIBC_SCCS) && !defined(lint)
21: static char sccsid[] = "@(#)daemon.c 1.2 (Berkeley) 6/29/90";
22: #endif /* LIBC_SCCS and not lint */
23:
24: #include <sys/file.h>
25:
26: daemon(nochdir, noclose)
27: int nochdir, noclose;
28: {
29: int cpid;
30:
31: if ((cpid = fork()) == -1)
32: return (-1);
33: if (cpid)
34: exit(0);
35: (void) setsid();
36: if (!nochdir)
37: (void) chdir("/");
38: if (!noclose) {
39: int devnull = open("/dev/null", O_RDWR, 0);
40:
41: if (devnull != -1) {
42: (void) dup2(devnull, 0);
43: (void) dup2(devnull, 1);
44: (void) dup2(devnull, 2);
45: if (devnull > 2)
46: (void) close(devnull);
47: }
48: }
49: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.