El comando Chkconfig se usa para configurar, ver o cambiar servicios que están configurados para iniciarse automáticamente durante el inicio del sistema.
Este artículo contiene 7 ejemplos prácticos que explican cómo usar el comando chkconfig.
1. Comprobar el estado de inicio del servicio desde Shell Script
Cuando ejecuta el comando chkconfig solo con el nombre del servicio, devuelve verdadero si el servicio está configurado para el inicio. El siguiente fragmento de código muestra cómo verificar si un servicio está configurado para iniciarse o no desde un script de shell.
# vi check.sh chkconfig network && echo "Network service is configured" chkconfig junk && echo "Junk service is configured" # ./check.sh Network service is configured
También puede verificar específicamente si está configurado para un nivel de ejecución en particular o no.
# vi check1.sh chkconfig network --level 3 && echo "Network service is configured for level 3" chkconfig network --level 1 && echo "Network service is configured for level 1" # ./check1.sh Network service is configured for level 3
2. Ver el estado actual de los servicios de inicio
La opción –list muestra todos los servicios con el estado de configuración de inicio actual.
# chkconfig --list abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off ...
Para ver solo los servicios que están configurados para iniciarse durante el inicio del sistema, haga lo siguiente. Tenga en cuenta que esto supone que el nivel de inicio de su sistema es 3.
chkconfig --list | grep 3:on
Nota :Para ver todos los niveles de ejecución del sistema disponibles, consulte las 6 etapas del proceso de arranque de Linux
Para ver la configuración de inicio de un servicio en particular, grep la salida de 'chkconfig –list' para ese servicio.
chkconfig --list | grep network
3. Añadir un nuevo Servicio a la Startup
Use la opción –add para agregar un servicio específico a la lista de servicios que se iniciarán durante el reinicio del sistema.
El siguiente ejemplo muestra cómo agregar un nuevo servicio (por ejemplo, iptables) a la lista de servicios que deben iniciarse. El comando 'chkconfig –add' también activará los niveles 2, 3, 4 y 5 automáticamente como se muestra a continuación.
# chkconfig --list | grep iptables # chkconfig --add iptables # chkconfig --list | grep iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Nota:“chkconfig –add” solo agrega un servicio existente a la lista de inicio. Si el servicio no existe, primero debe instalarlo antes de agregarlo a la lista de inicio del sistema. Si bien esto es bastante obvio, vale la pena mencionarlo, ya que un novato podría cometer este error.
4. Eliminar un servicio de la lista de inicio
El siguiente ejemplo muestra que los servicios de ip6tables están configurados para el inicio.
# chkconfig --list | grep ip6tables ip6tables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
Para eliminarlo de la lista de inicio, use la opción –del como se muestra a continuación.
# chkconfig --del ip6tables # chkconfig --list | grep ip6tables
5. Activar o desactivar un servicio para un nivel de ejecución seleccionado
A veces es posible que no desee eliminar todo el servicio. En su lugar, es posible que desee activar o desactivar el indicador para un nivel de ejecución en particular (para un servicio en particular).
El siguiente ejemplo desactivará el servicio nfserver para el nivel 5
# chkconfig --level 5 nfsserver off
También puede combinar varios niveles. El siguiente ejemplo desactivará nfsserver tanto para el nivel 3 como para el 5.
# chkconfig --level 35 nfsserver off
6. Archivos de script en subdirectorios rc.d
Cada vez que agrega o elimina un servicio del control chkconfig, hace lo siguiente en los subdirectorios /etc/rc.d.
- Cuando se ejecuta el comando chkconfig –add, se crea un archivo de enlace simbólico para iniciar y detener el servicio en el directorio rc correspondiente.
- Cuando se ejecuta el comando chkconfig –del, elimina el archivo de enlace simbólico del directorio rc correspondiente.
El siguiente ejemplo muestra que xinetd está habilitado para los niveles de ejecución 3 y 5.
Entonces, xinetd tendrá dos archivos en el directorio rc3.d y dos archivos en el directorio rc5.d. El archivo que comienza con K se usa durante el apagado (K significa matar). El archivo que comienza con S se usa durante el inicio (S significa inicio).
# chkconfig --list | grep xinetd xinetd 0:off 1:off 2:off 3:on 4:off 5:on 6:off xinetd based services: # cd /etc/rc.d/rc3.d # ls | grep xinetd K08xinetd S14xinetd # cd /etc/rc.d/rc5.d # ls | grep xinetd K08xinetd S14xinetd
7. Cambios en el directorio rcx.d para la operación Agregar
Cuando agrega un nuevo servicio al control chkconfig, los niveles de ejecución predeterminados para ese servicio se activarán automáticamente y los archivos se crearán en los directorios rcx correspondientes.
Por ejemplo, si el servicio nfsserver no existe en el control chkconfig, no habrá archivos de inicio del servicio nfsserver en los directorios /etc/rc.d/rc*.d como se muestra a continuación.
# chkconfig --list | grep nfsserver nfsserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off # ls /etc/rc.d/rc3.d | grep nfsserver # ls /etc/rc.d/rc5.d | grep nfsserver
Después de agregar el servicio nfsserver, verá los enlaces simbólicos debajo de estos directorios.
# chkconfig --add nfsserver nfsserver 0:off 1:off 2:off 3:on 4:off 5:on 6:off # cd /etc/rc.d/rc3.d # ls -l | grep nfsserver lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver -> ../nfsserver lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../nfsserver # cd /etc/rc.d/rc5.d # ls -l | grep nfsserver lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver -> ../nfsserver lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../nfsserver
Cuando apaga el servicio usando la opción –del o la opción –level, el archivo de enlace simbólico correspondiente en el directorio rcx.d se eliminará como se muestra a continuación.
# chkconfig --level 5 nfsserver off # ls /etc/rc.d/rc5.d | grep nfsserver