Bugtraq mailing list archives
daemon()
From: jwright () cfht hawaii edu (Jim Wright)
Date: Thu, 24 Feb 1994 08:42:10 -1000
Date: Thu, 24 Feb 1994 15:32:46 +1100 (EST) From: "Julian Assange" <proff () suburbia apana org au> my version of daemon(): void daemon() { close(0); close(1); close(2); setsid(); if (fork()) _exit(0); }
I offer this and ask for critiques. /*!**************************************************************************** * FILE * $Header: cfht_goDaemon.c,v 1.6 93/03/04 20:50:05 jwright Exp $ * $Locker: $ * * ROUTINES * cfht_goDaemon() * Disconnect from the world and become a daemon process. * * INVOKED * cfht_goDaemon(); * * PARAMETERS IN * none * * PARAMETERS OUT * none * * FUNCTION RETURNS * none * * GLOBALS * none * ****************************************************************************!*/ #include <fcntl.h> #include <unistd.h> #include <cfht/cfht.h> /* for calls to our logging system */ void cfht_goDaemon () { int i; int f; int status; /* become a child, make parent exit */ status = fork(); if (status < 0) { /* fork call failed, no child, we are parent */ cfht_log (CFHT_MAIN, CFHT_ERRNO, "(cfht_goDaemon) can't fork a new process for daemon"); exit (-1); } else if (status > 0) { /* we are the parent, bail out and let child continue */ exit (0); } /* we are the child, keep on going */ /* how many files to close? */ #ifdef hpux f = sysconf (_SC_OPEN_MAX); #else #ifdef sun f = getdtablesize (); #else SHOW ME HOW TO GET MAX NUMBER OF OPEN FILES PER PROCESS #endif #endif /* disassociate from controlling terminal */ if (setsid() == -1) { cfht_log (CFHT_MAIN, CFHT_ERRNO, "(cfht_goDaemon) can't disassociate from controlling terminal"); /* continue execution, hope for the best */ /* is this bad? should we bail out? */ } /* close all fd's */ for (i = 0; i < f; i++) close (i); /* attach 0,1,2 to /dev/null */ open ("/dev/null", O_RDONLY); dup2 (0, 1); dup2 (0, 2); }
Current thread:
- syslog/udp Tim Newsham (Feb 20)
- <Possible follow-ups>
- Re: syslog/udp Dave Hayes (Feb 22)
- Re: syslog/udp John Hawkinson (Feb 23)
- Security problem in C news and INN Featherlace (Feb 23)
- Re: Security problem in C news and INN Casper Dik (Feb 24)
- Re: Security problem in C news and INN Perry E. Metzger (Feb 24)
- Re: syslog/udp John Hawkinson (Feb 23)
- Re: syslog/udp scott () santafe edu (Feb 23)
- Re: syslog/udp Tim Newsham (Feb 23)
- Re: syslog/udp Julian Assange (Feb 23)
- daemon() Jim Wright (Feb 24)
- Thanks! Dave Hayes (Feb 23)