Hi, Can I run more processes in background?
A process runs fine but I want to run more processes. I have a search script and I am wondering if it will work faster if I will use more processes to query more database text files in the same time. Do I need to use the fork function for more times, or how could I run more processes? Thank you again. On Sun, 29 Sep 2002 16:40:07 +0200, [EMAIL PROTECTED] (Octavian Rasnita) wrote: >I want to make a script that is activated from a browser but it might take a >long time to send all the messages using the Net::SMTP. > >So I think that it could be a good idea to make a background process to run >it. > >Can you give me some hints about how I should use the fork, to run the >process in background? Your biggest problem is to close the pipes to apache from the forked children, else your clients will see their browser's hang. Merlyn has a good column on this at www.stonehenge.com column 20. Here is a simple example to demonstrate the problem. Make up some long process to test this with, like while(1){sleep(1)} Then try running it as a cgi script with and without the line which closes STDOUT, STDIN, and STDERR. With it commented out, your browser will hang. ############################################################## #!/usr/bin/perl use warnings; use strict; $| = 1; # need either this or to explicitly flush stdout, etc. # before forking print "Content-type: text/plain\n\n"; print "Going to start the fork now\n"; fork && exit; #try running with the following line commented out close STDOUT;close STDIN;close STDERR; exec('./fork-long-process-test-process') || warn "funniness $!"; #if you use system here, instead of exec, the parent process #hangs around for child to exit, even though the cgi exits. ############################################################# Teddy's Center for the blind: http://teddy.fcc.ro/ Email: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]