[Nagiosplug-devel] process plugin

Gilles THOMAS gthomas at telemarket.fr
Fri Nov 15 05:44:02 CET 2002


hi,

First, excuse me for my english...

I made a plugin in perl, because I need to know if a particular process is
present if you are interresting with that I give you the code, I'm not a
perl expert so excuse me for the quality of the code, and the return is in
french, so sorry but you may translate :


#!/usr/bin/perl

# You need CPAN module "Proc-ProcessTable-0.37" from Dan Urist.
# You can found this module at http://www.cpan.org.
#
# This script allow you to see if a process is present.
# You may/can use this script with nrpe

use Proc::ProcessTable;
use Getopt::Long;
&Getopt::Long::config('auto_abbrev');

# Evaluation des paramètres passés à la commande
my $status = GetOptions(
                        "process=s",\$process,
                        );

usage() if ($status == 0 || ! ($process));


$i = 0;

$ref = new Proc::ProcessTable;

foreach $proc (@{$ref->table}) {
  if(@ARGV) {
    next unless grep {$_ == $proc->{pid}} @ARGV;
  }

  if ($proc->{fname} =~ m/$process/i){

        $i++;
        printf "$proc->{cmndline} \n";
  };

}

  if ($i > 0) {
        printf "Il y a $i process '$process' \n";
        exit(0);
  };

  printf ("Il n'y a pas de process '$process' en cours ! \n");
  exit(2);

sub usage()
{

  printf "\n      check_process.pl Plugin for Nagios \n";
  printf "      Nagios : www.nagios.org \n";
  printf "\n Missing argument ! \n";
  printf "\n Ex : ./test_ps.pl -p nagios \n";
  printf "'nagios' is the name of the process \n\n";
  printf "it may be 'ping', 'smbd' or 'httpd', etc... \n\n";
  printf "-p : the name of the process you want to monitor \n\n";
  printf "\nCopyright (C) 2002 Gilles THOMAS 'tom\@persofrance.dyndns.org'
\n";
  printf "check_process.pl comes with ABSOLUTELY NO WARRANTY \n";
  printf "This programm is licensed under the terms of the ";
  printf "GNU General Public License\n(check source code for details) \n";
  printf "\n\n";

  exit(3);

}





More information about the Devel mailing list