2012-11-08 9 views
0

CPAN 모듈 POE :: Compoenten :: Server :: NRPE를 사용하려고합니다. CPAN 사이트에서 샘플을 시험해보고 nagios-tool check_nrpe에 대해 테스트했습니다.POE :: Component :: Server :: NRPE, 반환 값

텍스트는 괜찮 았지만 올바른 반환 값을 가져올 수 없습니다. 이 return_result는 모듈 설명에 설명되어 있지만이를 사용하는 방법을 알지 못합니다.

는 나에게 매우 짧은 예를 들어 줄 수 있다면, 어떻게 값을 <> 0

덕분에 많이 반환, 아주 좋은 것입니다!

환호, 크리스토프

use POE; 
use POE::Component::Server::NRPE; 

# test with: check_nrpe -H localhost -c test; echo $? 

my $nrped = POE::Component::Server::NRPE->spawn (port => 5666); 
$nrped->add_command (command => "test", program => 
sub { print STDOUT "test CRITICAL\n"; 
return 2; # always 0??? 
}); 

$poe_kernel->run(); 
return 0; 

답변

0

모듈의 버그처럼 보인다. 작성자가 cpan에서 새 버전 (0.16 -> 0.18)을 푸시했습니다.

1

이 질문을 게시 해 주셔서 감사합니다. 나는이 모듈을 모르고 있었지만 나에게 큰 도움이 될 것이다.

  1. 그것을 위해 POE :: 구성 요소 :: 서버 :: NRPE :: 상수 대신 OK 0 사용, 1에서 제공하는 당신의 좋은
  2. 를 사용하여 반환 상수이다, 코드에서 엄격하고 경고를 사용해보십시오 경고 등
  3. 에 내가 유일한 문제는 당신이 테스트 하위에 return 2 대신 exit NRPE_STATE_CRITICAL 더 나은 아직 exit 2의 이상을 사용하고이 있다고 생각은

다음 코드는 필요한 결과

,369을 산출한다
use strict; 
use warnings; 
use POE; 
use POE::Component::Server::NRPE; 

# it's recommended to use the NRPE return states provided by the module 
use POE::Component::Server::NRPE::Constants qw(NRPE_STATE_OK NRPE_STATE_CRITICAL); 

my $nrped = POE::Component::Server::NRPE->spawn (
     port => 5666 
); 

$nrped->add_command (command => "test", program => 
     sub { 
       print STDOUT "testing CRITICAL\n"; 
     # better to use NRPE_STATE_CRITICAL... 
       exit NRPE_STATE_CRITICAL; 
     # ... instead of the corresponding digital value 
     # but it should work 
     # exit 2; 
     } 
); 

$poe_kernel->run(); 
exit 0; 

감사합니다.