How can I launch an asynchronous process in a Perl CGI ?
Here is my problem (I use Apache 1.3 / ActivePerl on Windows2000)
- An HTML form is passed to my Perl CGI
- I want my CGI to process the form, launch an "other-script" (a bat file) and to return directly
an HTML output to the user WITHOUT WAITING for the other-script to finish. In other words, I want to launch the "other-script" asynchonously and to quit the CGI, without waiting for this program to return.
In a Pel CGI it's possible to launch a program with "system" or "exec"... so I tried :
exec "cmd c/ c:/mypath/myprogram.bat";
system "cmd c/ c:/mypath/myprogram.bat";
But the CGI wait till the end of "myprogram.bat" before returning the HTML output to the user.
It seem to me that the the program launched by exec / system is dependant of the CGI process and that the CGI process is not able to terminate if a child process is alive. I am right? Is there any way to deal with that?
Thanks for your help
Cédrick Fairon
fairon@univ-mlv.fr
Here is my problem (I use Apache 1.3 / ActivePerl on Windows2000)
- An HTML form is passed to my Perl CGI
- I want my CGI to process the form, launch an "other-script" (a bat file) and to return directly
an HTML output to the user WITHOUT WAITING for the other-script to finish. In other words, I want to launch the "other-script" asynchonously and to quit the CGI, without waiting for this program to return.
In a Pel CGI it's possible to launch a program with "system" or "exec"... so I tried :
exec "cmd c/ c:/mypath/myprogram.bat";
system "cmd c/ c:/mypath/myprogram.bat";
But the CGI wait till the end of "myprogram.bat" before returning the HTML output to the user.
It seem to me that the the program launched by exec / system is dependant of the CGI process and that the CGI process is not able to terminate if a child process is alive. I am right? Is there any way to deal with that?
Thanks for your help
Cédrick Fairon
fairon@univ-mlv.fr