Siguiente Arriba Anterior Contenido Indice

11.5 Los procesos de arranque (Boot Process), inicio (init), y cierre (shutdown)

Los Procesos de arranque, inicio, y cierre

11.5.1 El Proceso init en el System V

El Proceso init en el System V

Esta sección es una breve descripción sobre las interioridades del proceso de Arranque. Básicamente cubre en detalle el proceso de arranque de la máquina usando el Sistem V, y las diferencias entre éste el proceso Init original de las antiguas versiones de Linux.

El proceso Init es un programa que el núcleo ejecuta cuando arranca el sistema. Se encarga de inicializar todos los procesos normales que se necesiten ejecutar en el momento de arrancar; incluyendo los terminales que le permiten acceder al sistema, los demonnios NFS, FTP, y cualquier proceso que quiera ejecutar cuando su máquina arranque.

El proceso Init del SysV (Sistema V) se está convirtiendo rápidamente en el estándard del mundo de Linux para manejar la puesta en marcha del software en el momento de arranque. Esto se debe a que es más facil su uso, y más potente y flexible, que el proceso Init del tradicional BSD.

El proceso Init del SysV también difiere del BSD en que los ficheros de configuración se localizan dentro de un subdirectorio de /etc en lugar de estar directamente en /etc. Este subdirectoio se llama rc.d, y en él puede encontrar el fichero rc.sysinit y los siguientes directorios:

init.d
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d

El directorio init.d contiene una colección de escripts. Básicamente, se necesita un escript por cada servicio que pueda necesitar inicializar en el momento de arranque o cuando entra en otro nivel de ejecución. Los servicios incluyen procesos como networking, nfs, sendmail, httpd, etc. Los servicios no incluyen procesos como el de inicialización de los puertos serie, que únicamente se ejecuta una vez y finaliza. Procesos como este deberían estar en rc.local o en rc.serial.

Si desea un rc.local, debería localizarse en /etc/rc.d. La mayoría de los sistemas incluyen uno aunque no haga mucho. Puede incluir un rc.serial en /etc/rc.d si necesita realizar algo específico con el puerto serie en el momento de arrancar.

Veamos como es la sucesión de eventos:

El nivel de ejecución por defecto se decide en /etc/inittab. Debe tener una linea al principo del fichero parecida a:

id:3:initdefault:

Desde este, se puede ver en la segunda columna que por defecto el nivel de ejecución será el 3, como debiera ser el caso en la mayoría de sistemas. Si lo desea cambiar, tiene que editar /etc/inittab y modificar el 3. Tenga cuidado cuando manipule el fichero inittab. Si lo echa a perder, puede arreglarlo si rearranca y hace:

LILO boot:  linux single

Esto debiera permitirle arrancar en la modalidad de monousuario

Ahora, ¿Como hacer para que se ejecuten correctamente todos los escripts?. Si teclea ls -l en el directorio rc3.d, debería ver algo como esto:

lrwxrwxrwx 1 root root 17 3:11 S10network -> ../init.d/network
lrwxrwxrwx 1 root root 16 3:11 S30syslog -> ../init.d/syslog
lrwxrwxrwx 1 root root 14 3:32 S40cron -> ../init.d/cron
lrwxrwxrwx 1 root root 14 3:11 S50inet -> ../init.d/inet
lrwxrwxrwx 1 root root 13 3:11 S60nfs -> ../init.d/nfs
lrwxrwxrwx 1 root root 15 3:11 S70nfsfs -> ../init.d/nfsfs
lrwxrwxrwx 1 root root 18 3:11 S90lpd -> ../init.d/lpd.init
lrwxrwxrwx 1 root root 11 3:11 S99local -> ../rc.local

Como puede observar, no hay ``ficheros'' reales en el directorio. Todo lo que hay son enlaces a escripts del directorio init.d. Los enlaces tienen una ``S'' y un número al principio. La ``S'' significa iniciar este escript particular y la ``K'' significaría pararlo. El número únicamente tiene el propósito de establecer el orden de ejecución. EL proceso Init arrancará todos los servicios en el orden en el que se encuentran. Puede duplicar los números, pero con esto sólo provocará mayor confusión. Necesita únicamente usar un número de dos dígitos, precedido de una ``S'' o una ``K'' en mayúsculas para iniciar o parar el servicio que se necesite.

¿Como hace el proceso Init para arrancar y parar los servicios? Sencillo. Cada uno de los escripts se escribe para aceptar un argumento qué puede ser, ``start'' o ``stop''. De hecho, puede ejecutar a mano los escripts, con un comando como el siguiente:

/etc/rc.d/init.d/httpd.init stop

para parar el servidor httpd. El proceso Init únicamente lee el nombre y si tiene una ``K'', llama al escript con el argumento ``stop''. Por el contrario si tiene una ``S'' llama al escript con el argumento ``start''. ¿Por qué existen todos estos niveles de ejecución.? Algunas personas necesitan una forma sencilla para configurar las máquinas con carácter multi-propósito. Podría tener por un lado, un nivel de ejecución de ``servidor'' que tan sólo ejecutara httpd, sendmail, networking, etc. Y por otro, tener un nivel de ejecución de ``usuario'' ejecutando xdm, networking, etc.

11.5.2 Niveles de ejecución del proceso init

Niveles de ejecución del proceso init

Generalmente, Linux Red Hat se ejecuta en el nivel 3---modo multiusuario completo. En Linux Red Hat se usan los siguientes niveles de ejecución:

0
Halt.
1
Modo de monousuario.
2
Modo Multiusuario, sin NFS.
3
Modo multiusuario completo.
6
Rearranque.

Si su máquina entra en un estado en el qué es imposible arrancar, como consecuencia de un fichero /etc/inittab defectuoso, o no le permite registrarse por tener corrupto el fichero /etc/passwd o simplemente por haber olvidado su contraseña, deberá arrancar con un Modo de usuario simple, tecleando en el prompt de arranque de LILO, linux 1. Aparecerá un sistema muy simple, con un intérprete de comandos desde el que podrá arreglar las cosas.

11.5.3 Cerrando el sistema

Cerrando el sistema

Para cerrar Linux Red Hat Linux, envíe el siguiente comando shutdown. Ud. puede leer la página man de shutdown para completar los detalles, los dos usos mas comunes son:

shutdown -h now
shutdown -r now

Ambos cierran el sistema limpiamente. Después de cerrar todos los procesos, el primero parará la máquina, y el segundo la reinicia.

Nunca ejecute los comandos reboot o halt directamente si quiere prevenir daños al sistema de ficheros.


Siguiente Arriba Anterior Contenido Indice