On 04/11/2010 14:16, Michele Bert <micbert75@xxxxxxxxx> wrote:
Il 04 novembre 2010 13:50, Mario Vittorio Guenzi<jclark@xxxxxxxxxx> ha scritto: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.Mi butto in una spiegazione un po' azzardata, per me, ma in questo modo le eventuali conferme/smentite mi insegneranno qualcosa. Il file che trovi in /var/run non è l'identificativo di processo, ma un file che ne memorizza il valore. [...]
La spiegazione non mi sembra azzardata: il file che contiene il pid non è *il* pid!
Per verificare che un processo stia effettivamente girando, dovresti analizzare l'output del comando ps, ed eventualmente confrontare il pid che trovi la dentro con quello nel file in /var/run.
Puoi chiedere al sistema il pid del processo che interessa, che è la soluzione più affidabile:
# pidof /usr/bin/xyzzySe ti fidi del contenuto di /var/run/xyzzy.pid, puoi verificare se il processo esiste con "kill -0":
# kill -0 $(cat /var/run/xyzzy.pid) && echo "il processo xyzzy esiste"
In ogni caso trovo alquanto curioso che un processo stoppato regolarmente (nel tuo caso con "stop") non provveda ad eliminare il pid file...
Dipende da chi ha creato il pidfile. Ad esempio, start-stop-daemon non lo cancella automaticamente, vedere opzione --make-pidfile.
http://perfec.to/stalepid.html -- Ciao, Flavio -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx