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
Relacionados
Imprimir
17. November 2011 at 3:38 pm :
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