Saya memiliki skrip init /etc/init.d/myserviceuntuk menginisialisasi layanan seperti ini:
...
start() {
...
daemon /usr/sbin/myservice
...
}
stop() {
...
pgrep myservice
pidof myservice
ps -ef | grep myservice
...
}
Dan ketika saya mencoba menghentikan layanan, ini adalah 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
Apakah ini yang diharapkan? Mengapa pidofmengembalikan hanya PID yang benar dari layanan yang ingin saya hentikan dan pgrepmengembalikan PID layanan dan PID dari skrip init? Bisakah saya mengandalkan itu pidofakan selalu mengabaikan PID dari skrip init?
pidoftidak kembali10001, karena programnyash, bukan?