[Linuxtrent] pid e perplessita'

  • From: Mario Vittorio Guenzi <jclark@xxxxxxxxxx>
  • To: linuxtrent <linuxtrent@xxxxxxxxxxxxx>
  • Date: Thu, 04 Nov 2010 13:50:25 +0100

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Buongiorno a tutti,
c'e' una cosa che mi sta facendo pensare, parto dal principio mi serve
monitorare l'esistenza o meno di una connessione ad internet e ho
pensato di farlo in questo modo:

#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
### some variables
F_HOST=www.google.com
S_HOST=www.amazon.com
T_HOST=www.corriere.it
CHECK="/usr/lib/nagios/plugins/check_http -w 5 -c 10"
HBPIDFILE="/var/run/heartbeat.pid"
hbalive=0
netalive=0

if [ -e $HBPIDFILE ]
then
        runpid=`cat $HBPIDFILE`
        hbalive=1
fi

$CHECK $F_HOST || $CHECK $S_HOST || $CHECK $T_HOST
if [ $? == 0 ]
then
        netalive=1
fi
echo $hbalive $netalive

                        ###se ( hbalive=1  && netalive=0) -> heartbeat stop
                        ###se ( hbalive=0 && netalive=1) -> heartbeat start
### se ambedue sono  a 0 (rete giu' heratbeat giu') o a 1 (rete su
heartbeat su) non bisogna fare nulla
if [ $hbalive -eq  $netalive ]
then
echo "tutto ok"
exit 0
fi
### se heartbeat e' giu a seguito di normale down di rete allora deve
ripartire se la rete e' attiva
if [ $hbalive -lt  $netalive ]
then
/etc/init.d/heartbeat start
fi
### se heartbeat e' su e la rete e' giu deve fermarsi per fare partire
lo slave
if [ $hbalive -gt  $netalive ]
then
/etc/init.d/heartbeat stop
exit 0
fi

che almeno in teoria mi pare funzioni, pero' simulando e facendo un bel
heartbeat stop in /var/run mi trovo un heartbeat.pid che se e' vero che
e' un identificativo di processo a rigor di logica non ci dovrebbe
essere visto che il demone e' stato stoppato.
Quindi sono perplesso se il servizio e' fermo perche' esiste un suo
identificativo?
Sono  io che sbaglio logica o e' una cavolata vera e propria?
L'esistenza del pid e' il nocciolo dello script se e' normale che un
servizio spento abbia un pid allora devo ripensare la logica dello
script, ma continuo a pensare che un servizio spento nonha senso abbia
un pid.
e se il demone riparte e quel valore nel frattempo e' stao preso da
altro processo vine riscritto? torna al processo originale?
come in passato posso modificare il file di init perche rimuova il pid
quando stoppa ma mi pare che sia una "tacconata" e che visto che ormai
lo trovo ogni 3x2 sto fatto ci sia qualcosa di storto.
Mi sapete dare delle dritte?
Grazie in anticipo


- --

Mario Vittorio Guenzi
E-mail jclark@xxxxxxxxxx
Si vis pacem, para bellum
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkzSrBEACgkQm6qs1ZkNrIpS8QCfbwewSTqotfCX/6F7TpuwduIM
1qwAoITENP1ZosvT1BY92MJKWLg342+s
=RJar
-----END PGP SIGNATURE-----
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: