Niveles de Ejecución en Linux y SysV Scripts
Linux tiene varios niveles de ejecución esto significa que dependiendo en qué nivel lo arranquemos el sistema al completo tendrá unas características o unas limitaciones, cada uno indicado para tareas específicas o puntuales en algunos casos.
Esta es la tabla de los 6 niveles de ejecución y lo que significan cada uno:
0 El sistema se apagará completamente.
1 – «Single user» o usuario único, los servicios que se inician aquí varían en cada distribución. Es típicamente usado para tareas de mantenimiento que pueden afectar al comportamiento normal del sistema, como ajustar tamaño de particiones.
2 – En Debian y sus derivados es un entorno multiusuario con X-Window y un entorno gráfico. Red Hat y otras dejan este nivel de ejecución sin asignar.
3 – En Fedora, Mandriva y Red hat, es un modo multiusuario con consola, sin entorno gráfico, es la por defecto en servidores y la recomendada.
4 – Este nivel está libre para usos futuros.
5 – En Fedora, Mandriva y Red Hat y la mayoría, tiene el mismo comportamiento que el runlevel 3 pero con un login gráfico y X-Windows.
6 – Apaga por completo el sistema y lo rearranca.
En cada nivel de ejecución se ejecutan diferentes servicios como hemos comentado en el runlevel 1 estos servicios se denominan los Scripts de inicio SysV.
Existen dos maneras de saber que programas se inician en cada nivel y de administrarlos. El primero es el /etc/inittab que también tiene el nivel de ejecución por defecto y las entradas tienen esta forma:
id:runlevels:action:process
id – uno a cuatro caracteres que identifican esta entrada.
runlevels – una serie de niveles de ejecución en donde se aplica esta entrada.
action – código que especifica como tratar el proceso, wait (esperar a que el nivel se inicie del todo), respawn ( ordena a init reiniciar el proceso en cuanto se termina, como el proceso de login)
process – El proceso a iniciar.
Esta es la entrada que indica el runlevel a iniciar:
id:3:initdefault:
Los cambios en el /etc/inittab se hacen con mucho cuidado y sobre todo nunca poner el nivel de ejecución 0 ó el 6 por defecto, ya que el sistema ya nunca arrancara correctamente.
La segunda forma es a través de la ruta /etc/init.d/rc o /etc/rc.d/rc estas rutas son genéricas ya que hay una por cada nivel de ejecución:
m3t4g4m3@nexolinux ~ $ ls /etc/rc rc0.d/ rc2.d/ rc4.d/ rc6.d/ rcS.d/ rc1.d/ rc3.d/ rc5.d/ rc.local
Esto es un ejemplo de lo que hay en una de esas carpetas:
m3t4g4m3@nexolinux ~ $ ls /etc/rc2.d/ S20speech-dispatcher S30mdm S75sudo S05loadcpufreq S20vboxautostart-service S31atieventsd S99acpi-support S19cpufrequtils S20vboxballoonctrl-service S50rsync S99grub-common S20hddtemp S20vboxdrv S50saned S99ondemand S20ike S20vboxweb-service S70dns-clean S99rc.local S20kerneloops S20virtualbox-guest-utils
Para administrarlos se usa chkconfig, es un comando rápido y sencillo con el que podemos listar todos los servicios y admite estos parámetros:
m3t4g4m3@nexolinux ~ # chkconfig --list
httpd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
xprint 0:off 1:off 2:on 3:on 4:on 5:off 6:off
nfs-common 0:off 1:off 2:off 3:on 4:off 5:off 6:off
En los niveles de ejecución que están en «on» como es normal se arranca el servicio. Hay que tener en cuenta que si por ejemplo no tenemos el Apache metido aquí al reiniciar no nos arranca, ¿y si tenemos varios servidores? Sería una tarea laboriosa arrancar uno a uno.
Para listar uno en particular basta con hacer esto:
m3t4g4m3@nexolinux ~ # chkconfig --list httpd
httpd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
Y si queremos modificarlo:
m3t4g4m3@nexolinux ~ # chkconfig --level 234 httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:off 6:off
Si por el contrario no tenemos el servicio añadido lo haremos así:
m3t4g4m3@nexolinux ~ # chkconfig --add httpd
Por último quizás mucho quiera comprobar su nivel de ejecución y como premio por llegar hasta aquí lo diré, con este simple comando:
m3t4g4m3@nexolinux ~ # runlevel
N 2
También podemos reiniciar con el runlevel deseado haciendo lo siguiente que apagará el sistema en este caso:
m3t4g4m3@nexolinux ~ # init 0
# Si necesitas un manual del LPIC no dudes en descargarlos de lpic-documentacion-oficial
Deja un comentario