[linux] paralelne spustanie procesov (kompresia logov)
Peter Viskup
skupko.sk na gmail.com
Úterý Únor 2 19:55:37 CET 2010
Naskriptuj si to.
Ja som to riesil v Perl-e (urcite sa to da aj v shelli ;-) ).
(nasledujuci kod nemusi byt plne funkcny a je nutne ho doplnit)
# spracuva sa prvy argument vo forme --childs <number>
use warnings;
use strict;
use locale;
my $MAXCHILD = 5;
my $CURCHILD = 0;
my ($num, $start_num, $end_num, $childs) = (0,0,0);
use Getopt::Long;
if (!GetOptions('childs=i'=>\$childs)) {
usage();
die "Wrong options!\n";
}
if ($childs>0){
$MAXCHILD=$childs;
}
while ($num <= $end_num) {
if($CURCHILD < $MAXCHILD){
if(my $pid = fork()){
addchild();
}
elsif(defined $pid){
# tuto nieco vykonava child...
exit;
}
else{
die "Fork failed: $!\n";
}
}
else {
while($CURCHILD >= $MAXCHILD){
my $processid = waitpid(-1, 0);
delchild();
}
}
}
sub addchild {$num++; $CURCHILD++;}
sub delchild {$CURCHILD--;}
--
Peter Viskup
Matus UHLAR - fantomas wrote:
> Zdravim,
>
> poznate niekto aplikaciu ktora by mi umoznila zadefinovat niekolko procesov
> ktore by sa mali spustit, pricom paralelne by malo bezat vzdy max. X
> procesov?
>
> rad by som komprimoval dost velke logy paralelne na kazdom procesore jeden
>
>
Další informace o konferenci linux