[Nagiosplug-devel] Nagios::Plugin api

Lawrence, Lynne Lynne.G.Lawrence at uscg.mil
Thu Aug 31 21:12:17 CEST 2006


I believe that if you put the signal handler in the BEGIN{} block of
Nagios::Plugin it will take effect when the class is loaded with the
'use' statement, even before object creation:
 
package Nagios::Plugin;
use strict;
 
our
%STAT=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
 
BEGIN { $SIG{__DIE__} = sub { die_exit(@_) }; }
.
.
.
sub die_exit {
    my $fmt = shift;
    printf("Execution Error: " . $fmt, @_);
    exit($STAT{UNKNOWN},);
}
 
This way users would not have to include it in plugin scripts.
 
Best Regards,
 
Lynne Lawrence


________________________________

	From: nagiosplug-devel-bounces at lists.sourceforge.net
[mailto:nagiosplug-devel-bounces at lists.sourceforge.net] On Behalf Of
Vonnahme, Nathan
	Sent: Thursday, August 31, 2006 1:07 PM
	To: Nagios Plugin Development Mailing List
	Subject: Re: [Nagiosplug-devel] Nagios::Plugin api
	
	
	You'd want it to work before an object was created, or if you
didn't have a Plugin object in the current scope, so I think die() would
have to be exported by the module and called functionally (it would also
work as a method).
	 
	I've messed with exit handlers before; after I get through my
current list of stuff I'll work on this.

		I like the idea of overloading die - keeps it v simple -
but only if it doesn't need to be specified at the plugin script (eg,
can we get it automatically just by use Nagios::Plugin?).
		
		
		Also, does that mean the object will return the data? Or
all the setup stuff is class data? 
		 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nagios-plugins.org/archive/devel/attachments/20060831/58e395d7/attachment.html>


More information about the Devel mailing list