Como explicamos en Niveles de corrida o runlevels en Linux y en el post anterior, la administración de servicios bajo el esquema SystemV se realiza mediante la ejecución de enlaces simbólicos que apuntan a scripts presentes en /etc/init.d. Si bien podríamos alterar dichos enlaces simbólicos utilizando técnicas tradicionales (por ejemplo, cambiar la S por la K en el nombre de para deshabilitar el servicio asociado), se dispone de una herramienta especial llamada chkconfig que reduce la posibilidad de errores humanos y facilita la tarea. En este post veremos cómo habilitar y deshabilitar, en un runlevel determinado, servicios con chkconfig.
Listar servicios con chkconfig
Como podemos observar en la Fig. 1, si utilizamos chkconfig con la opción --list
sin otro argumento, podremos ver el estado de cada servicio en cada runlevel. Si le agregamos el nombre del servicio veremos la información del mismo únicamente.
[pastacode lang=»bash» manual=»chkconfig%20–list%20%23%20Ver%20el%20estado%20de%20todos%20los%20servicios%20en%20cada%20runlevel%0Achkconfig%20–list%20postfix%20%23%20Ver%20el%20estado%20de%20postfix%20%C3%BAnicamente» message=»» highlight=»» provider=»manual»/]
Habilitar y deshabilitar servicios con chkconfig
Para habilitar o deshabilitar un servicio en un nivel de corrida determinado con chkconfig, utilizamos las opciones on
u off
, respectivamente junto con el nombre del mismo. Por ejemplo, para deshabilitar postfix en los niveles 4 y 5 debemos ejecutar el siguiente comando:
[pastacode lang=»bash» manual=»chkconfig%20–level%2045%20postfix%20off» message=»» highlight=»» provider=»manual»/]
Si comparamos la parte inferior de la Fig. 1 con la Fig. 2, veremos que en los niveles dados el servidor de correo estará deshabilitado:
Para volver atrás con el cambio recién realizado, utilizaremos:
[pastacode lang=»bash» manual=»chkconfig%20–level%2045%20postfix%20on» message=»» highlight=»» provider=»manual»/]
Puede suceder que luego de instalar un servicio no se hayan creado las entradas correspondientes en /etc/rcN.d para iniciarlo y detenerlo (entre otras opciones). Por ejemplo, si al instalar un servicio llamado miservicio (con su script correspondiente /etc/init.d/miservicio) vemos que no se ha creado un enlace simbólico en /etc/rc3.d, utilizaremos chkconfig con la opción --add
para crear los enlaces simbólicos necesarios:
[pastacode lang=»bash» manual=»chkconfig%20–add%20miservicio» message=»» highlight=»» provider=»manual»/]
Veamos el detalle en la Fig. 3:
Si posteriormente decidimos eliminar miservicio, podemos utilizar la opción --del
para borrar los enlaces simbólicos creados como podemos observar en la Fig. 4:
[pastacode lang=»bash» manual=»chkconfig%20–del%20miservicio» message=»» highlight=»» provider=»manual»/]
Espero que este post les haya sido de utilidad. ¡Los espero en el próximo!
2 comentarios en «Habilitar y deshabilitar servicios con chkconfig»
Muy bueno el post.
Aquí una chuleta para administrar los servicios con systemD (CentOS7/RHEL7): http://www.sysadmit.com/2018/03/linux-servicios-systemd-systemctl.html
José,
Me alegra que te haya gustado el post. Muchas gracias por tu aporte.