Murcia has asked for the wisdom of the Perl Monks concerning the following question:

Hi, monks somebody has a nice cgi script or links to scripts for "Watching processes through CGI"? I want to run some processes in background and get feedback to the parent that they are finished and than show results ... I found a script from "Randal Schwartz" which is nice for one process ... but how to handle more processes? Thanks for help Murcia

Replies are listed 'Best First'.
Re: CGI Processes
by robartes (Priest) on Feb 14, 2003 at 16:24 UTC
    If I understand your question correctly, you basically want to fork a number of child processes and then either wait for them or set a signal handler while you do something useful. The Perl Cookbook has lots of example code for this, as has this site. In pseudocode, you would:
    @children[0]=sub{ child_1_code }; @children[1]=sub{ child_2_code }; @children[2]=sub{ child_3_code }; foreach $child @children { spawn( $child); } while (($returned_child = wait()) > 0 ) { print "Child $returned_child has finished"; } sub spawn { $code=shift; die "Something fishy: $!\n" if (($ret=fork()) == -1); return if $ret; exit &$code; }
    Being something halfway between pseudocode and real code, this has not been tested and will definitely not work as written.

    CU
    Robartes-