Tenía la misma pregunta y también encontré una respuesta diferente . El autor enumera 4 opciones para lograr esto, de las cuales me gusta la primera mejor:
Utilícelo initclt emit myservice-started
para indicar la finalización del inicio de su servicio dependiente. En la respuesta vinculada, se sugiere agregar esta línea al final del init.d
script del servicio de dependencia , pero prefiero un método diferente. Me gusta crear un nuevo inid.d
script llamado myservice-started
que solo contiene una start
sección. Utilizando el estilo de comentario apropiado en el encabezado del archivo, declaro que depende de $myservice
que se inicie. En la start
sección, le cuento al advenedizo acerca de myservice
haber comenzado. Puedes instalarlo con update-rc.d
.
Me gusta esta solución porque no es intrusiva; Si una actualización cambia cualquiera de los init.d
scripts existentes , no afectará estos scripts adicionales. Pero recuerde que se requieren cambios en sus secuencias de comandos iniciales .
Podría verse así:
#!/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
Su secuencia de comandos inicial que espera myservice puede escuchar el myservice-started
evento:
start on myservice-started