-const char jcc_rcs[] = "$Id: jcc.c,v 1.52 2001/10/26 20:11:20 jongfoster Exp $";
+const char jcc_rcs[] = "$Id: jcc.c,v 1.53 2001/11/05 21:41:43 steudten Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jcc.c,v $
*
* Revisions :
* $Log: jcc.c,v $
+ * Revision 1.53 2001/11/05 21:41:43 steudten
+ * Add changes to be a real daemon just for unix os.
+ * (change cwd to /, detach from controlling tty, set
+ * process group and session leader to the own process.
+ * Add DBG() Macro.
+ * Add some fatal-error log message for failed malloc().
+ * Add '-d' if compiled with 'configure --with-debug' to
+ * enable debug output.
+ *
* Revision 1.52 2001/10/26 20:11:20 jongfoster
* Fixing type mismatch
*
/* make config-filename absolute here */
if ( !(basedir = getcwd( NULL, 1024 )))
{
- perror("get working dir");
+ perror("get working dir failed");
+ exit( 1 );
}
DBG(1, ("working dir '%s'\n",basedir) );
if ( !(abs_file = malloc( strlen( basedir ) + strlen( configfile ) + 5 )))
}
else if ( pid != 0 ) /* parent */
{
+ int status;
+ pid_t wpid;
+ /*
+ ** must check for errors
+ ** child died due to missing files aso
+ */
+ sleep( 1 );
+ wpid = waitpid( pid, &status, WNOHANG );
+ if ( wpid != 0 )
+ {
+ exit( 1 );
+ }
exit( 0 );
}
/* child */
config->need_bind = 0;
-
while (FOREVER)
{
#if !defined(FEATURE_PTHREAD) && !defined(_WIN32) && !defined(__BEOS__) && !defined(AMIGA) && !defined(__OS2__)