Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 90 lines (80 sloc) 3.082 kb
93c6642e »
2006-09-04 whitespace changes only
1 /* $Header: /cvsroot/wikipedia/willow/src/bin/willow/daemon.c,v 1.1 2005/05/02 19:15:21 kateturner Exp $ */
2 /* $NetBSD: daemon.c,v 1.9 2003/08/07 16:42:46 agc Exp $ */
98ca309d »
2006-04-30 autoconf work so it runs on nexenta
3 /*-
4 * Copyright (c) 1990, 1993
93c6642e »
2006-09-04 whitespace changes only
5 * The Regents of the University of California. All rights reserved.
98ca309d »
2006-04-30 autoconf work so it runs on nexenta
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. Neither the name of the University nor the names of its contributors
16 * may be used to endorse or promote products derived from this software
17 * without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 */
86969ea4 »
2006-09-04 restore blank lines I over-zealously destroyed earlier.
31
98ca309d »
2006-04-30 autoconf work so it runs on nexenta
32 #if defined __SUNPRO_C || defined __DECC || defined __HP_cc
33 # pragma ident "@(#)$Header: /cvsroot/wikipedia/willow/src/bin/willow/daemon.c,v 1.1 2005/05/02 19:15:21 kateturner Exp $"
34 # pragma ident "$NetBSD: daemon.c,v 1.9 2003/08/07 16:42:46 agc Exp $"
35 #endif
86969ea4 »
2006-09-04 restore blank lines I over-zealously destroyed earlier.
36
98ca309d »
2006-04-30 autoconf work so it runs on nexenta
37 #include <fcntl.h>
2c196ed6 »
2009-01-19 Build fixes for ubuntu 8.10/64.
38 #include <stdio.h>
98ca309d »
2006-04-30 autoconf work so it runs on nexenta
39 #include <stdlib.h>
40 #include <unistd.h>
86969ea4 »
2006-09-04 restore blank lines I over-zealously destroyed earlier.
41
df1b7e42 »
2008-10-06 Removed compiler warnings and increased warning level
42 #include "memcached.h"
43
08c14e4e »
2008-10-06 Always use bundled daemonize function, fixed warnings on MacOSX
44 int daemonize(int nochdir, int noclose)
98ca309d »
2006-04-30 autoconf work so it runs on nexenta
45 {
93c6642e »
2006-09-04 whitespace changes only
46 int fd;
86969ea4 »
2006-09-04 restore blank lines I over-zealously destroyed earlier.
47
93c6642e »
2006-09-04 whitespace changes only
48 switch (fork()) {
49 case -1:
50 return (-1);
51 case 0:
52 break;
53 default:
c8425072 »
2007-04-12 use EXIT_* constants
54 _exit(EXIT_SUCCESS);
93c6642e »
2006-09-04 whitespace changes only
55 }
86969ea4 »
2006-09-04 restore blank lines I over-zealously destroyed earlier.
56
93c6642e »
2006-09-04 whitespace changes only
57 if (setsid() == -1)
58 return (-1);
86969ea4 »
2006-09-04 restore blank lines I over-zealously destroyed earlier.
59
2c196ed6 »
2009-01-19 Build fixes for ubuntu 8.10/64.
60 if (nochdir == 0) {
61 if(chdir("/") != 0) {
62 perror("chdir");
63 return (-1);
64 }
65 }
86969ea4 »
2006-09-04 restore blank lines I over-zealously destroyed earlier.
66
0b211d45 »
2007-07-08 Fix minor style inconsistencies and add some missing error checking.
67 if (noclose == 0 && (fd = open("/dev/null", O_RDWR, 0)) != -1) {
2c196ed6 »
2009-01-19 Build fixes for ubuntu 8.10/64.
68 if(dup2(fd, STDIN_FILENO) < 0) {
69 perror("dup2 stdin");
70 return (-1);
71 }
72 if(dup2(fd, STDOUT_FILENO) < 0) {
73 perror("dup2 stdout");
74 return (-1);
75 }
76 if(dup2(fd, STDERR_FILENO) < 0) {
77 perror("dup2 stderr");
78 return (-1);
79 }
80
81 if (fd > STDERR_FILENO) {
82 if(close(fd) < 0) {
83 perror("close");
84 return (-1);
85 }
86 }
93c6642e »
2006-09-04 whitespace changes only
87 }
88 return (0);
8bdbe4a3 »
2006-09-04 but we do want trailing newline at end of file
89 }
Something went wrong with that request. Please try again.