Query se il servizio è in esecuzione
Domanda
Come posso query se un servizio (dnsmasq) è in esecuzione, in C?
Soluzione
Secondo il pagina man dnsmasq , per impostazione predefinita scrive un file pid a /var/run/dnsmasq.pid
. Questo file sarà un file di testo che contiene un numero intero che rappresenta l'ID del processo. Aprire il file, leggere l'intero, e la chiamata kill(pid, 0)
per vedere se il processo è vivo in quel pid. (Anche se il controllo per l'esistenza PID non è garantito di non trovare qualche altro processo in esecuzione in quel PID, di solito è abbastanza buono.)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow