#!/usr/bin/perl

#
# OpServices Tenologia da Informacao
# @author Jurior Cunha
# @version 1.0
# @date 13/03/2007
#
# Modificacoes Boris Vasquez 
#
# @description
#    
#

use strict;

our ($process) = @ARGV;
our $ps_command = "/bin/ps axwo 'stat uid pid ppid vsz rss pcpu comm args'";
sub main {

#   my @lines = grep { $_ == /$process/i and $_ !~ /$0|ps|grep/} `$ps_command`;
   my @out = `$ps_command |grep "$process"`;
   my @lines;
   foreach (@out){
     if ($_ !~ /$0|ps|grep/){
        push (@lines,$_);
     }
   }
   if (defined @lines) {
      print "Ok - ".scalar (@lines)." Process running => $process.\n";
      exit(0);
   }else{
      my $output;
      foreach my $l (@lines) {
         #print $l;
         chomp($l);
         my @parts = split(/[ \t]+/, $l);
         $output .= "/ ($parts[2]) $parts[8] $parts[9] /";
      }
      print "Critical - ", $#lines+1, " processes with command name $process. $output\n";
      exit(2);
   }

}
&main();
