#! /usr/bin/perl use strict ; use warnings ; package Probe::Mailq ; use base 'Probe' ; # mailq int mailq sub ITEMS { [ { name => 'mailq' , kind => 'int' , args => [] } ] ; } ; sub main { my $self = shift ; my $itms = shift ; # items to probe : [ item, ... ] my $clnt = shift ; # main::CLIENT my $prog = Util::find_bin ( 'mailq' ) ; my ( $err, $xit, $sig, @lines ) = Probe::Util::run_prog ( $prog ) ; if ( $err ) { $_ -> perr ( $err ) for @$itms ; } else { my $line = pop @lines ; chomp $line ; if ( defined $line ) { my $val ; if ( $line =~ /Mail queue is empty/i ) { $val = 0 ; } elsif ( $line =~ /(\d+) requests?/i ) { $val = $1 ; } for my $item ( @$itms ) { $item -> set_val ( $val ) if defined $val ; } } } } 1 ;