[bcn-pm] Sys::AlarmCall

Arnau Bria arnau a emergetux.net
div mar 20 09:05:14 PDT 2009


Hola a tots,

tinc una pregunta sobre el timeout que dona AlarmCall.

L'he posat perque cridi un parell de funcions i ho he fet així:
my $nfs_result = alarm_call($nfs_timeout,'&nfs_mount');;
my $result = alarm_call($ce_ssh_timeout,'&llaves_CE');

de tal forma que després miro els resultats de les variables nfs_result
i result per treure un missatge d'erro un altre amb un simple if/elsif:


if ($nfs_result != 0 ){
        &return_ERROR("[KO]: Timeout 1 NFS\n");
}elsif ($result != 0){
        &return_ERROR("[KO]: Timeout 2 \n");
}else{
        &return_OK("[OK]: if");
}

i les funcions de retorn només treuen per pantalla el missatge i fan
un exit:

sub return_ERROR () {
        print "$_[0]";
        exit 2;
}

sub return_OK () {
        print "$_[0]";
        exit 0;
}

*Això és per un sensor a nagios, per això els exits 0 i 2.

Dintre de les funcions nfs_mount i llaves_CE també hi ha return_ERROR,
és adir, alguna d'aquestes funcions pot sortir amb exit 2, i abortaria
el programa.

Doncs bé, no se ni com ni perque a vegades tinc un misstage que diu:

2* [OK]

És a dir, l'script surt amb l'OK però el valor de retorn és un 2.

No entenc com pot passar això, algú m'il·lumina, si us plau? A la
documentació del timeout no parla de forks... només se m'acud que
estigui agafant el exit 2 d'alguna funció (peruqe falli algo) després
de que el timeout s'hagi acomplert...


Gràcies a tots!

-- 
Arnau Bria
http://blog.emergetux.net
Bombing for peace is like fucking for virginity


Més informació sobre la llista de correu Barcelona-pm