X-Git-Url: https://git.tokkee.org/?p=gosa.git;a=blobdiff_plain;f=trunk%2Fgosa-si%2Fgosa-si-server;h=18723f8b2213841d3601acc356437ba43866cc94;hp=c79bfdd1c9297b919b8121f3477987557619fb61;hb=2176c59f58cb7a56d51fa4a78fd0924a6a27743d;hpb=a1a3d31a784b87c089b95bfea006f369d928a2b5 diff --git a/trunk/gosa-si/gosa-si-server b/trunk/gosa-si/gosa-si-server index c79bfdd1c..18723f8b2 100755 --- a/trunk/gosa-si/gosa-si-server +++ b/trunk/gosa-si/gosa-si-server @@ -3231,32 +3231,39 @@ $adm_gid = getgrnam('adm'); $SIG{CHLD} = 'IGNORE'; -# forward error messages to logfile -if( ! $foreground ) { - open( STDIN, '+>/dev/null' ); - open( STDOUT, '+>&STDIN' ); - open( STDERR, '+>&STDIN' ); -} - # Just fork, if we are not in foreground mode if( ! $foreground ) { - chdir '/' or die "Can't chdir to /: $!"; + if (! chdir('/')) { + daemon_log("Can't chdir to /: $!", 1); + exit( 1 ); + } + umask( 0 ); $pid = fork; - setsid or die "Can't start a new session: $!"; - umask 0; } else { $pid = $$; } -# Do something useful - put our PID into the pid_file if( 0 != $pid ) { + # Parent: put PID into the $pid_file open( LOCK_FILE, ">$pid_file" ); print LOCK_FILE "$pid\n"; close( LOCK_FILE ); if( !$foreground ) { - exit( 0 ) - }; + exit( 0 ); } +} +else { + # Child + open( STDIN, '+>/dev/null' ); + open( STDOUT, '+>&STDIN' ); + open( STDERR, '+>&STDIN' ); + if (! POSIX::setsid()) { + daemon_log("Can't start a new session: $!"); + exit( 1 ); + } + $poe_kernel->has_forked() if ($poe_kernel->can('has_forked')); +} + # parse head url and revision from svn my $server_status_hash = { 'developmental'=>'revision', 'stable'=>'release'};