Tengo una aplicación (en forma de un único binario) que necesito ejecutar en uno de mis servidores y me gustaría poder controlar su ciclo de vida correctamente. Lo que me gustaría es lo siguiente:
- un simple comando iniciar/detener/reiniciar
- la menor configuración posible, no quiero configurar cosas grandes como monit o escribir 500 líneas de scripts de shell
- manejar stdout/stderr/failures en un archivo de registro
- administrar un archivo pid de manera que solo haya un archivo pid si el proceso se está ejecutando (esto parece ser muy difícil de hacer manualmente usando scripts de shell correctamente)
- (opcional)Ser capaz de hacer algo si el binario falla.
- (opcional)se inicia automáticamente si el servidor se reinicia y/o la aplicación falla
Lo que estoy buscando es una solución liviana que idealmente funcione con Ubuntu Server lista para usar, sin mucha configuración.
Respuesta1
Para Ubuntu, creoAdvenedizoes lo que estás buscando.
https://askubuntu.com/questions/19320/how-to-enable-or-disable-services Esta pregunta de AskUbuntu tiene información excelente sobre cómo comenzar con lo que estás haciendo.
En pocas palabras, copie lo siguiente en /etc/init/mybinary.conf.
description "My Binary"
author "Jakub Arnold <[email protected]>"
start on (local-filesystems and net-device-up)
stop on runlevel [!2345]
respawn
pre-start script
RUN_MODE="daemons"
end script
exec mybinary
Esto debería ayudarle a continuar con lo siguiente:
- Gestión de servicios con 'servicio mybinary inicio/parada/estado'
- Gestión de archivos PID
- reaparecer en caso de accidente
- ejecutar en el arranque
- iniciar sesión en /var/log/upstart/mybinary.log
El libro de cocina Upstart con toda la información que necesitará:http://upstart.ubuntu.com/cookbook/
Aparte, creo que debo mencionar que Ubuntu planea retirar Upstart en favor de Systemd, pero no se ha establecido ninguna hoja de ruta.