Cómo, en Ubuntu, ejecutar como servicio/ejecutar bajo supervisión

Cómo, en Ubuntu, ejecutar como servicio/ejecutar bajo supervisión

Me han dado 3 grupos. Uno es de Kafka, otro es de tormenta y el otro es de ZooKeeper. Necesito hacerlo para que los servicios se inicien y, cuando se detengan, se inicien nuevamente como se describe en elguía de administración del cuidador del zoológico.

OS for every machine => Ubuntu-trusty 14.04
Platform => Running in Amazon EC2 

Entonces, en resumen, necesito poder iniciar el servicio respectivo al inicio. Si el servicio se inicia, necesito que se reinicie. Necesito hacer esto para Storm, Kafka y Zookeeper. Y necesito que la respuesta sea simple y directa. Otra forma de hacer esta pregunta: ¿Cuál es la forma más fácil de lograr mis objetivos?

Respuesta1

El mecanismo de gestión de servicios para Ubuntu es Upstart. La guía Upstart está aquí: http://upstart.ubuntu.com/cookbook/

No es tan difícil ponerse en marcha. Hay muchos ejemplos que puedes citar.

Resulta (de nuestro chat vinculado en los comentarios) que @MassSql tiene servicios en segundo plano (y presumiblemente se monitorean/reinician si mueren). Dado que ese es el caso, puede usar el mecanismo de script RC más simple/heredado (que implementa Upstart, pero una interfaz mucho más simple para tareas más simples de simplemente iniciar cosas en el arranque y detenerlas al apagar). Así que aquí está ese enfoque:

  1. Vaya a /etc/init.d y haga una copia de dns-clean (cámbiele el nombre como desee).
  2. Edite el archivo. Cambie la INIT INFOsección modificando las descripciones y borrando los campos Required-Starty Required-Stop. Crea un nuevo nombre para Provides. (básicamente cambiar todo menos Default-Start)
  3. Elimina estas líneas:

prueba -f /usr/sbin/pppconfig || salir 0

mkdir /var/run/pppconfig >/dev/null 2>&1 || verdadero

prueba -f /etc/ppp/ip-down.d/0dns-down || salir 0

  1. Cambie las líneas en el start)bloque para ejecutar sus scripts. Deja el ;;al final.

  2. Ejecute update-rc.d foobar enabledonde foobarestá el nombre de su servicio (debe ser el nombre del archivo además del Provides, al menos por convención).

Reinicie su sistema y pruebe.

información relacionada