gjoshi has asked for the wisdom of the Perl Monks concerning the following question:
I need to send Status of a child to parent and from that, parent will decide to kill the child or give it some time. Here is my code:
sub function2 { my $pid = @_; print "END\n"; exit 0; } for my $count (1..3){ my $child_pid = fork(); print "PID: $child_pid \n"; if ($child_pid) { # If I have a child PID, then I must be the + parent push @children_pids, $child_pid; } else { # I am the child my $end; local $SIG{HUP} = sub { $end = 1 }; my $Child_PID = $$; print "CHILD's PID is: $Child_PID \n"; #my $wait_time = int(rand(30)); my $wait_time = 30; # NEED TO SEND THE STATUS SIGNAL TO PARENT my $localtime = localtime; #Write to DB until ($end) { print "Sleep 1\n"; sleep 1; } function2($Child_PID); } } print "\n ----- Main DB ---- \n"; foreach my $child (@children_pids) { print "Parent: Waiting on $child\n"; my $localtime = localtime; sleep 5; print "Killing child: $child \n"; kill HUP => $child; waitpid($child, 0); } print "All done.\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to send Status Signal from Child to Parent after its done executing?
by hippo (Archbishop) on Nov 20, 2015 at 09:43 UTC |