En CentOS o Red Hat, la herramienta de línea de comandos chkconfig se utiliza para mantener la jerarquía de directorios /etc/rc[0-6].d, que se utiliza para mantener los links simbólicos a los scripts de inicio de servicios de acuerdo a cada runlevel.

Ya que chkconfig es una herramienta sólo de Red Hat y similares, en Debian o Ubuntu se debe utilizar la herramienta update-rc.d para realizar la misma tarea.

update-rc.d actualiza automáticamente los links a scripts de inicio estilo System V /etc/rc[runlevel].d/[NN][script] que apuntan a los scripts /etc/init.d/[script]. Estos scripts son ejecutados por init cuando se cambian runlevels y se utilizan generalmente para iniciar y detener servicios.

Por ejemplo, para iniciar automáticamente el servicio ssh se debe ejecutar el comando

# update-rc.d ssh defaults

En cambio, para remover el servicio (que no sea iniciado automáticamente por init) se debe ejecutar:

# update-rc.d -f ssh remove

update-rc.d tiene dos modos de operación para instalar scripts en la secuencia de booteo: un modo legacy donde se utilizan argumentos en la línea de comandos para decidir la configuración de secuencia y runlevel; y un modo default donde la información de secuencia y runlevel se obtiene del encabezado de comentario LSB de los scripts init.d. El encabezado de comentario LSB de un script init.d tiene el siguiente formato:

### BEGIN INIT INFO
# Provides:          boot_facility_1 [ boot_facility_2 ...]
# Required-Start:    boot_facility_1 [ boot_facility_2 ...]
# Required-Stop:     boot_facility_1 [ boot_facility_2 ...]
# Should-Start:      boot_facility_1 [ boot_facility_2 ...]
# Should-Stop:       boot_facility_1 [ boot_facility_2 ...]
# X-Start-Before:    boot_facility_1 [ boot_facility_2 ...]
# X-Stop-After:      boot_facility_1 [ boot_facility_2 ...]
# Default-Start:     run_level_1 [ run_level_2 ...]
# Default-Stop:      run_level_1 [ run_level_2 ...]
# X-Interactive:     true
# Short-Description: single_line_description
# Description:       multiline_description
### END INIT INFO 

En este encabezado se puede obtener información sobre dependencias, runlevels, etc. Por ejemplo:

head -n 15 /etc/init.d/apache2
#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          apache2
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Start/stop apache2 web server
### END INIT INFO
#
# apache2               This init.d script is used to start apache2.
#                       It basically just calls apache2ctl.

ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"


Tal vez pueda interesarte


Compartí este artículo