¿Cómo debo administrar un proceso de servidor de larga duración en Ubuntu?

¿Cómo debo administrar un proceso de servidor de larga duración en Ubuntu?

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.

información relacionada