#!/usr/bin/perl -w use strict; use Proc::ProcessTable; my $t = new Proc::ProcessTable; print "PID PPID UP START CMD TYPE CMD NAME TRACE\n"; foreach my $p (@{$t->table}) { if ($p->{cmd} =~ /(op01)/) { my $seconds = $p->{time} % 60; my $diff = ($p->{time} - $seconds) / 60; my $minutes = $diff % 60; $seconds = "0$seconds" if $seconds =~ /^\d$/; my $bigTime = "$minutes:$seconds"; ### Grab process name, type, and trace from cmd $p->{cmd} =~ /(\w+)\b\w+\b(\w+?)\b/; my $procType = $1; my $procName = $2; #not checking for trace yet, since I can't get the procname my $FORMAT = "%-6s %-6s %-7s %-24s %-15s\n"; printf($FORMAT, $p->{pid}, $p->{ppid}, $bigTime, scalar(localtime($p->{start})), $procType, $procName); } }