in reply to Running an external script from a Perl CGI script

Most likely, the xx.pl script is getting killed off when the cgi exits. Do this:
system "/the/full/path/to/xx.pl @arguments $another_argument </dev/nu +ll >/full/path/to/output.log 2>&1 &";
(that log at the end can be switched to /dev/null, too, if you don't want to look at the output anymore. but i find it really useful for debugging.)

I'd guess that the reason that ls works but your xx.pl doesn't is that ls can complete quickly enough, but xx.pl takes longer & isn't done running when the cgi exits & its child processes are killed off. i got bitten by this on one of the first CGIs i wrote, and it took a friend & i a while of digging through FAQs to uncover the trick to keeping the child process running. -- cat

Replies are listed 'Best First'.
Re: Re: Running an external script from a Perl CGI script
by Eureka_sg (Monk) on Feb 22, 2001 at 12:17 UTC

    Thanks everyone for their suggestions. Its due to the display of html(and thus $result="") before the child process is completed as what cat2014 suggested.