Ho uno script /etc/init.d/myservice
di inizializzazione per inizializzare un servizio come questo:
...
start() {
...
daemon /usr/sbin/myservice
...
}
stop() {
...
pgrep myservice
pidof myservice
ps -ef | grep myservice
...
}
E quando provo a interrompere il servizio, questo è l'output:
10000 10001
10000
root 10000 1 0 09:52 ? 00:00:02 /usr/sbin/myservice
root 9791 9788 0 10:06 pts/1 00:00:00 /bin/sh /sbin/service myservice stop
root 10001 9791 1 10:06 pts/1 00:00:00 /bin/sh /etc/init.d/myservice stop
root 9805 9796 0 10:06 pts/1 00:00:00 grep myservice
È previsto? Perché pidof
viene restituito solo il PID corretto del servizio che desidero interrompere e pgrep
restituisce il PID del servizio e il PID dello script init? Posso fare affidamento sul fatto che pidof
ignorerà sempre il PID dallo script init?
pidof
non ritorna10001
, perché il programma èsh
no?