in reply to Re^2: How to make perl script work simltaneously on multiple objects
in thread How to make perl script work simltaneously on multiple objects

Hi,

if you fork a perl script which does have all to process the job it should be quite easy as you don't need to exec and you do have everything in hands. Anything you set up before fork is also accessible in the child. Be careful. Memory usage is multiplied.

There a some points you have to be aware of:

McA

Replies are listed 'Best First'.
Re^4: How to make perl script work simltaneously on multiple objects
by slayedbylucifer (Scribe) on Apr 05, 2013 at 06:11 UTC

    Hi McA,

    I had a developer colleague of mine help me on writing below fork code (after following your advice).

    #!/usr/bin/perl -w use strict; use POSIX; my @list=("server1","server2","server3","server4","server5","server6", +"server7","server8"); my $count = 0; my $pcount = 5; foreach (@list) { chomp ; my $real_host = $_; if( (my $pid = fork()) == 0) { print "Processing - $_ \n"; my $wait=ceil(rand(10)); print "Wait:$wait \n"; sleep($wait); print "Exit Status= $? \n"; if($? ==0) { print "$_ Exit successfully \n"; } else { print "$_ Does not Exit successfully \n"; } print "Completing - $_ \n"; exit; } $count++; while($count >= $pcount) { wait(); $count--; } } while(wait() != -1){}

    I still don’t understand few parts of this code but I am OK with that. This test code is working perfectly. So I am planning to use the same logic in my orchestrator.

    Many thanks for your help.