From: Kurt Zeilenga Date: Fri, 10 Oct 2003 02:07:24 +0000 (+0000) Subject: Generate pid/arg files after detaching X-Git-Tag: OPENLDAP_REL_ENG_2_1_MP~603 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=81f1a24e1b47851640a57cb271ba1b3d7d7ca839;p=openldap Generate pid/arg files after detaching --- diff --git a/servers/slurpd/main.c b/servers/slurpd/main.c index 6db0b0fbee..5f53a89e6b 100644 --- a/servers/slurpd/main.c +++ b/servers/slurpd/main.c @@ -178,42 +178,43 @@ int main( int argc, char **argv ) } - if ( slurpd_pid_file != NULL ) { - FILE *fp = fopen( slurpd_pid_file, "w" ); + /* + * Detach from the controlling terminal + * unless the -d flag is given or in one-shot mode. + */ +#ifndef HAVE_WINSOCK + if ( ! (sglob->no_detach || sglob->one_shot_mode) ) { + lutil_detach( 0, 0 ); + } +#endif + + if ( slurpd_pid_file != NULL ) { + FILE *fp = fopen( slurpd_pid_file, "w" ); - if( fp != NULL ) { - fprintf( fp, "%d\n", (int) getpid() ); - fclose( fp ); + if( fp != NULL ) { + fprintf( fp, "%d\n", (int) getpid() ); + fclose( fp ); - } else { + } else { free(slurpd_pid_file); slurpd_pid_file = NULL; + } } - } - if ( slurpd_args_file != NULL ) { - FILE *fp = fopen( slurpd_args_file, "w" ); - - if( fp != NULL ) { - for ( i = 0; i < argc; i++ ) { - fprintf( fp, "%s ", argv[i] ); + if ( slurpd_args_file != NULL ) { + FILE *fp = fopen( slurpd_args_file, "w" ); + + if( fp != NULL ) { + for ( i = 0; i < argc; i++ ) { + fprintf( fp, "%s ", argv[i] ); + } + fprintf( fp, "\n" ); + fclose( fp ); + } else { + free(slurpd_args_file); + slurpd_args_file = NULL; } - fprintf( fp, "\n" ); - fclose( fp ); - } else { - free(slurpd_args_file); - slurpd_args_file = NULL; } - } - - /* - * Detach from the controlling terminal - * unless the -d flag is given or in one-shot mode. - */ -#ifndef HAVE_WINSOCK - if ( ! (sglob->no_detach || sglob->one_shot_mode) ) - lutil_detach( 0, 0 ); -#endif if ( (rc = lutil_pair( sglob->wake_sds )) < 0 ) { SERVICE_EXIT( ERROR_SERVICE_SPECIFIC_ERROR, 16 );