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)
