Configurando init para iniciar getty: el archivo /etc/inittab

Cuando init comienza su ejecución, lee el archivo de configuración /etc/inittab. Mientras el sistema se esté ejecutando, puede releerse este archivo de configuración si la señal HUP es enviada al proceso; [27] esta acción permite que no sea necesario reiniciar todo el sistema para que los cambios en la configuración de init tomen efecto.

El archivo /etc/inittab es un poco complicado. Debido a esto, comenzaremos su explicación con el simple caso de configurar líneas getty. Las líneas de texto dentro del archivo /etc/inittab consisten de cuatro campos delimitados por dos puntos:

 id:runlevels:action:process 

La descripción de cada uno de los campos están explicados en los párrafos sucesivos. Además, /etc/inittab puede contener líneas vacías y líneas que comiencen con el símbolo numeral (`#'), las cuales son ignoradas al ser leídas por init.

id

Este campo identifica a la línea dentro del archivo. Para líneas getty, especifica la terminal en que debe ejecutarse (los caracteres después de /dev/tty en el nombre del archivo de dispositivo). Para otros tipos de líneas, este campo no tiene importancia. El valor en este campo debe ser único (no se permite que existan dos id iguales) y la longitud no puede exceder la de cuatro caracteres.

runlevels

Los niveles de ejecución en los cuales la línea debe ser considerada. Los niveles de ejecución están dados por dígitos simples, sin delimitadores. (los niveles de ejecución serán descriptos en la próxima sección).

action

Define la manera en que debe ser tratada la línea. Por ejemplo, si el valor es respawn, entonces el comando que se detalle en el próximo campo se ejecutará nuevamente cada vez que finalice, en cambio, si el valor es once, el comando se ejecuta una única vez.

process

El comando a ejecutar.

Para iniciar un getty en la primera terminal virtual (/dev/tty1), en todos los niveles de ejecución multiusuarios normal (2-5), debe escribir la siguiente línea:

 1:2345:respawn:/sbin/getty 9600 tty1 

El primer campo señala que esta es la línea para el archivo de dispositivo /dev/tty1. El segundo campo indica que esta entrada se aplica a los niveles de ejecución 2,3,4 y 5. El tercer campo significa que el comando debe ser ejecutado nuevamente, después de que este termine (para que uno pueda ingresar al sistema, salir y entonces poder ingresar nuevamente). El último campo es el comando que ejecuta a getty en la primera terminal virtual [28]

.

Si desea agregar terminales o líneas módem (dial-in) a un sistema, debe agregar mas líneas a /etc/inittab, una para cada terminal o línea de auto-respuesta. Si necesita conocer mas detalles, lea las páginas de manual para init, inittab y getty.

En caso de que un comando falle cuando comience su ejecución, e init esté configurado para reiniciarlo, el sistema consumirá una gran cantidad de recursos, debido a que la acción de ejecutar el comando se repetirá infinitamente. Para prevenir este tipo de problemas, init registra que tan frecuentemente reinicia un comando, y si la frecuencia crece a valores muy altos, init espera por cinco minutos antes de reiniciarlo nuevamente.



[27] Utilizando el comando kill -HUP 1 como root, por ejemplo

[28] Diferentes versiones de getty son ejecutadas diferentemente. Lea la página de manual para conocer mayores detalles, y tambien esté seguro de estar leyendo la página de manual correcta.