binmode(STDOUT, ":unix"); # unbuffer STDOUT print $q->header( -status => '200 Pages Updated', -type => 'text/plain', -charset => 'ascii', ); print "\n\nStarting Update of $app_name\n\n" . "Since this will take a while, we will send a mail " . "when it is complete\n"; warn "Forking '@cmd'\n" if $DEBUG; use Proc::Daemon; my $daemon = Proc::Daemon->new( ); close STDIN; close STDOUT; close STDERR; my $child_pid = $daemon->Init; if ($child_pid) { # We are the parent - we need to exit so Apache shows what # we just printed to the user # warn "Child PID is $child_pid\n" if $DEBUG; exit; } my $status = system @cmd; # send an email after completion instead of updating the page