Linux-Mandrake: Manual de Referencia | ||
---|---|---|
Anterior | Capítulo 12. Los archivos de arranque: init "System V" | Siguiente |
Todos los archivos relacionados con el arranque del sistema están ubicados en el directorio /etc/rc.d. Aquí tiene la lista de los mismos:
$ ls /etc/rc.d init.d/ rc.local* rc0.d/ rc2.d/ rc4.d/ rc6.d/ rc* rc.sysinit* rc1.d/ rc3.d/ rc5.d/ |
En primer lugar, como hemos visto, se ejecuta el archivo rc.sysinit. Este es el archivo responsable de poner en su lugar la configuración básica de la máquina: tipo de teclado, configuración de ciertos dispositivos, verificación del sistema de archivos, etc.
Luego se ejecuta el script rc, con el nivel de ejecución como argumento. Como hemos visto, el nivel de ejecución es un simple entero, y para cada nivel de ejecución <x> definido, debe haber un directorio rc<x>.d correspondiente. Entonces, en una instalación típica de Linux-Mandrake, Ud. puede ver que están definidos 6 niveles de ejecución:
0: Detención de la máquina por completo;
1: modo monousuario; para ser usado en el caso de serios problemas o para la recuperación del sistema.
2: modo multi-usuario, sin red;
3: modo multi-usuario, con red;
4: No usado;
5: Como 3, pero con la ejecución de la interfaz gráfica de conexión;
6: Volver a iniciar.
Observemos, por ejemplo, el contenido del directorio rc5.d:
$ ls rc5.d K15postgresql@ K60atd@ S15netfs@ S60lpd@ S90xfs@ K20nfs@ K96pcmcia@ S20random@ S60nfs@ S99linuxconf@ K20rstatd@ S05apmd@ S30syslog@ S66yppasswdd@ S99local@ K20rusersd@ S10network@ S40crond@ S75keytable@ K20rwhod@ S11portmap@ S50inet@ S85gpm@ K30sendmail@ S12ypserv@ S55named@ S85httpd@ K35smb@ S13ypbind@ S55routed@ S85sound@ |
Como puede ver, todos los archivos de este directorio son vínculos simbólicos, y todos tienen una forma muy específica. Su forma general es <S|K><orden><nombre_del_servicio>. La S significa Start (arrancar) el servicio, y K significa Kill (detener), el servicio. Los scripts se ejecutan por número de orden ascendente, y si dos scripts tienen el mismo número, se aplica el orden alfabético. También podemos ver que cada vínculo simbólico apunta a scripts ubicados en /etc/rc.d/init.d (excepto local), scripts que son responsables de controlar un servicio específico.
Cuando el sistema entra en un nivel de ejecución dado, comienza por ejecutar los vínculos K en orden: rc busca donde apunta el vínculo, luego llama al script correspondiente con un argumento solo stop (detener). Luego ejecuta los scripts S, todavía usando el mismo método, excepto por el hecho de que el script se llama con el argumento start (iniciar).
Por lo tanto, sin mencionar a todos los scripts, podemos ver que cuando el sistema entra en el nivel de ejecución 5, primero ejecuta
K15postgresql |
Armado con todo esto, Ud. puede crear su propio nivel de ejecución completo en pocos minutos, o evitar el arranque o la detención de un servicio borrando el vínculo simbólico correspondiente (también hay programas que son una interfaz para hacer esto, en particular DrakXServices y chkconfig; el primero es un programa gráfico).