Saya memiliki pertanyaan yang sama, dan saya juga menemukan jawaban yang berbeda . Penulis mencantumkan 4 opsi untuk mencapai ini, yang paling saya sukai adalah yang pertama:
Gunakan initclt emit myservice-started
untuk memberi sinyal penyelesaian startup layanan dependen Anda. Dalam jawaban yang ditautkan, disarankan untuk menambahkan baris ini ke akhir init.d
skrip layanan dependensi , tapi saya lebih suka metode yang berbeda. Saya suka membuat inid.d
skrip baru bernama myservice-started
yang hanya berisi start
bagian. Menggunakan gaya komentar yang sesuai di header file, saya menyatakan bahwa itu tergantung pada $myservice
untuk memulai. Di start
bagian ini, saya memberi tahu pemula tentang myservice
memulai. Anda dapat menginstalnya dengan update-rc.d
.
Saya suka solusi ini karena tidak mengganggu; jika pembaruan mengubah salah satu init.d
skrip yang ada , itu tidak akan mempengaruhi skrip tambahan ini. Tapi ingat bahwa perubahan script kaya baru Anda yang diperlukan.
Mungkin terlihat seperti ini:
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: myservice-started
# Required-Start: $myservice
# Default-Start: 2 3 4 5
# Short-Description: send upstart signal after starting myservice
# Description: myservice needs to run before some upstart services can run
### END INIT INFO
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Signaling myservice started..." "myservice-started"
initctl emit myservice-started --no-wait
;;
*)
log_action_msg "Usage: /etc/init.d/myservice-started start"
exit 1
;;
esac
exit 0
Skrip pemula Anda yang menunggu layanan saya dapat mendengarkan myservice-started
acara:
start on myservice-started