Tengo un script inicial para iniciar una aplicación de nodejs personalizada. La aplicación depende de couchdb y elasticsearch. couchdb y elasticsearch proporcionan scripts init.d para iniciarlos / detenerlos. ¿Es posible decirle a mi script de inicio que couchdb y elasticsearch son dependencias? Intenté esto en mi script de inicio, pero parece que no funciona:
iniciar en (inició couchdb y comenzó elasticsearch)
¡Gracias!

Respuestas:
Lo único que sé que funcionaría es crear (o buscar e instalar) secuencias de comandos de inicio para elasticsearch y couchdb para que pueda usar la opción "iniciar".
# ElasticSearch Service descripción "ElasticSearch" comenzar en (net-device-up y sistemas de archivos locales y runlevel [2345]) detenerse en el nivel de ejecución [016] límite de reaparición 10 5 env ES_HOME = / usr / share / elasticsearch / home env ES_MIN_MEM = 256m env ES_MAX_MEM = 2g env DAEMON = "$ {ES_HOME} / bin / elasticsearch" env DATA_DIR = / data / elasticsearch / data env CONFIG_DIR = / etc / elasticsearch salida de consola guión if [-f / etc / default / elasticsearch]; entonces . / etc / default / elasticsearch fi su -s / bin / dash -c "/ usr / bin / elasticsearch -f -Des.path.conf = $ CONFIG_DIR -Des.path.home = $ ES_HOME -Des.path.logs = $ LOG_DIR -Des.path. data = $ DATA_DIR -Des.path.work = $ WORK_DIR "elasticsearch fin de guiónfuente
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-startedpara indicar la finalización del inicio de su servicio dependiente. En la respuesta vinculada, se sugiere agregar esta línea al final delinit.dscript del servicio de dependencia , pero prefiero un método diferente. Me gusta crear un nuevoinid.dscript llamadomyservice-startedque solo contiene unastartsección. Utilizando el estilo de comentario apropiado en el encabezado del archivo, declaro que depende de$myserviceque se inicie. En lastartsección, le cuento al advenedizo acerca demyservicehaber comenzado. Puedes instalarlo conupdate-rc.d.Me gusta esta solución porque no es intrusiva; Si una actualización cambia cualquiera de los
init.dscripts existentes , no afectará estos scripts adicionales. Pero recuerde que se requieren cambios en sus secuencias de comandos iniciales .Podría verse así:
Su secuencia de comandos inicial que espera myservice puede escuchar el
myservice-startedevento:fuente