On Fri, 26 Jan 2007 14:51:36 +0100 Alberto wrote: > invece per il demone dhcpd3 come posso abilitare un > controllo anche sul socket (raw in questo caso) ?? > > check process dhcpd3 with "pidfile /var/run/dhcpd.pid" > start program "/etc/init.d/dhcp3-server start" > stop program "/etc/init.d/dhcp3-server stop" > if 5 restarts within 5 cycles then timeout
Premessa: in generale UDP per sua natura è un po' rognosetto per queste soluzioni raw e quindi sarebbe meglio affidarsi, laddove possibile, ai protocolli. Ad esempio dns.c si affida all'interrogazione del DNS root per il record NS. Ciò detto puoi provare una cosa così: check process dhcpd3 with "pidfile /var/run/dhcpd.pid" start program "/etc/init.d/dhcp3-server start" stop program "/etc/init.d/dhcp3-server stop" if failed host 127.0.0.1 port 67 type udp then restart if 5 restarts within 5 cycles then timeout in questo modo monit manda 1 byte al server e rimane in attesa di una risposta; fai attenzione che il server potrebbe loggare la comunicazione come un errore, in fondo gli stai mandando solo 1 byte, e comportarsi in modo diverso dall'atteso. Verificarne il comportamento e agire di conseguenza spetterà a te. Una seconda e migliore soluzione, anche se leggermente più complessa, potrebbe prevedere l'utilizzo del protocollo generic provando a costruire un semplice datagramma udp da utilizzare con gli statement send/expect. Ovviamente in questo caso dovrai sapere che cosa inviare tramite send e cosa aspettarti da expect. ciao, a.