systemadmin.es > Monitorización > upstart en CentOS 6

upstart en CentOS 6

Uno de los cambios de CentOS 6 respecto CentOS 5 es al uso de upstart en lugar del típico init de System V. Para los que usen programas que dependan del init, como son las daemontools, tendremos que adaptarnos.

upstart permite la gestión de daemons de una forma parecida a lo que haríamos con las daemontools. Un ejemplo de configuración es el siguiente, deberíamos dejarlo en /etc/init/apache22.conf:

start on runlevel 3

respawn

exec /usr/local/apache22/bin/httpd -DNO_DETACH -f /usr/local/apache22/conf/httpd.conf

Para arrancar y parar el daemon lo haríamos con initctl:

# initctl start crond
crond start/running, process 3394

Mediante help podemos ver el listado de opciones:

# initctl help
Job commands:
  start                       Start job.
  stop                        Stop job.
  restart                     Restart job.
  reload                      Send HUP signal to job.
  status                      Query status of job.
  list                        List known jobs.

Event commands:
  emit                        Emit an event.

Other commands:
  reload-configuration        Reload the configuration of the init daemon.
  version                     Request the version of the init daemon.
  log-priority                Change the minimum priority of log messages from the init daemon
  help                        display list of commands

For more information on a command, try `initctl COMMAND --help'.

En el caso que el proceso muera lo arrancará de nuevo automáticamente:

Sep  5 19:08:22 pica init: apache22 main process ended, respawning

Además, el soporte para daemons que pasan a background es mucho más directo que tener que crear librerías que substituyan la llamada fork(). En upstart, simplemente deberemos indicarlo mediante lo siguiente:

expect fork

Por defecto, si un daemon se levanta y muere seguido lo desactiva:

Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23007) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23008) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23009) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23010) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23011) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23012) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23013) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23014) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23015) terminated with status 1
Sep  7 19:32:43 pica init: apache22 main process ended, respawning
Sep  7 19:32:43 pica init: apache22 main process (23016) terminated with status 1
Sep  7 19:32:43 pica init: apache22 respawning too fast, stopped

El límite por defecto es 10 veces en 5 segundos, pero evidentemente podemos modificar dicho limite mediante respawn limit:

respawn limit 5 10

Podemos no limitar el número de intentos de levantar el daemon dejando el limite a cero:

respawn limit 0 0

One comment to “upstart en CentOS 6”

  1. Este site es una joya para la administración de sistemas, y tener como compi en el curro a este señor más todavía 😉

    Have a nice day 😉
    TooManySecrets

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>