Cuando el kernel inicia los programas de inicio estilo System V, leen su archivo de configuración, /etc/inittab. Este archivo define:
- el nivel de ejecución en el que init iniciará el sistema de forma predeterminada
- los programas init se ejecutarán para inicializar el sistema
- los procesos estándar init comenzarán para cada nivel de ejecución
- los scripts init se ejecutarán para implementar cada nivel de ejecución
De forma predeterminada, la mayoría de los servidores se inician en el nivel de ejecución 3, mientras que la mayoría de las estaciones de trabajo se inician en el nivel de ejecución 5. Este valor predeterminado se puede anular en el momento del arranque configurando el cargador de arranque para pasar una opción que especifique un nivel de ejecución alternativo.
/etc/inittab Sintaxis de línea
Una línea en el archivo /etc/inittab tiene cuatro campos delimitados por dos puntos.
id:rstate:action:process
– La primera es una identificación única. No importa cuál sea el valor, siempre que ninguna otra línea tenga los mismos 1 o 2 caracteres.
– La segunda es la lista de niveles de ejecución para restringir esta línea. Si no aparece ninguno, la línea se procesará independientemente del nivel de ejecución predeterminado.
– El tercer campo es la acción que se llevará a cabo (por lo general, ejecutar el comando especificado en el cuarto campo).
La siguiente tabla describe los campos en una entrada de inittab.
Campo | Descripción |
---|---|
identificación | Es un identificador único para la entrada. |
restado | Enumera los niveles de ejecución a los que se aplica esta entrada. |
acción | Identifica cómo se ejecutará el proceso que se especifica en el campo de proceso. Los valores posibles incluyen: sysinit, boot, bootwait, wait y respawn. Para obtener una descripción de las otras palabras clave de acción, consulte inittab(4). |
proceso | Define el comando o script a ejecutar. |
Nivel de ejecución predeterminado
La línea initdefault en /etc/inittab le dice a init a qué nivel de ejecución debe ir si no se le ha dado esa información. Esta línea es especial porque no hay ningún comando para ejecutar (todos los demás tienen un valor en el cuarto campo):
Archivo de muestra /etc/inittab
A continuación se muestra un archivo /etc/inittab de muestra del sistema CentOS 6.
# cat /etc/inittab # inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # System initialization is started by /etc/init/rcS.conf # # Individual runlevels are started by /etc/init/rc.conf # # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf # # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, # with configuration in /etc/sysconfig/init. # # For information on how to write upstart event handlers, or how # upstart works, see init(5), init(8), and initctl(8). # # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:
/etc/rc.d/rc.sysinit Guión de arranque
El /etc/rc.d/rc.sysinit script es llamado por el programa init en el arranque. Este script realiza una configuración inicial que es independiente del nivel de ejecución. Los siguientes son ejemplos de cosas realizadas por el script rc.sysinit:
- el hardware periférico, como USB, dispositivos conectados en paralelo o en serie, está configurado
- los parámetros del kernel que se especifican en /etc/sysctl.conf se aplican al kernel en ejecución
- Establece el nombre de host
- el sistema de archivos raíz se verifica y se vuelve a montar en lectura/escritura
- Los dispositivos RAID y LVM están activados
- El intercambio de archivos y particiones está activado
- cuotas de disco activadas