diff --git a/modules/util/Util/Processes.pm b/modules/util/Util/Processes.pm new file mode 100644 index 0000000000000000000000000000000000000000..66c831ae52326aaf901343ba7432ab8449bfe28a --- /dev/null +++ b/modules/util/Util/Processes.pm @@ -0,0 +1,47 @@ +=head1 NAME + + Util::Processes + +=head1 DESCRIPTION + +Deal with Unix processes + +=cut + +package Util::processes; + +sub psauxww +{ + my @cmd= qw(ps auxww); + + open (PS, '-|', @cmd) or die; + my $columns= <PS>; + chop($columns); + my @columns= split(' ', $columns); + my $column_count= 0; + my %columns= map { $_ => $column_count++ } @columns; + # print __LINE__, " columns: ", main::Dumper(\@columns); + # print __LINE__, " column_count=[$column_count]\n"; + my @processes; + while (<PS>) + { + chop; + # print __LINE__, " _=[$_]\n"; + my @f= split(' ', $_, $column_count); + my %f= map { $_ => shift (@f) } @columns; + # print __LINE__, " proc: ", main::Dumper(\%f); + push (@processes, \%f); + } + close (PS); + + my $proc= + { + columns => \@columns, + processes => \@processes, + }; + + $proc; +} + +1; +