next up previous contents
Next: Niveles de arranque Up: Inicio del Sistema Previous: Por si se opta


Fichero /etc/inittab

Comentábamos en la sección anterior que el GRUB/LILO pasa el control de la máquina al núcleo y comienza la autodetección del hardware de nuestra máquina y carga los drivers de dispositivos. Toda la información que se genera la tenemos a nuestra disposición cada vez que arrancamos Linux, va apareciendo en el monitor de nuestro equipo.1.17

\includegraphics[%
width=10cm]{graficos/31/letras_inicio.ps}

Si la cosa va bien comienza el proceso init: es el padre de todos los demás procesos, su finalidad es la de generar los procesos nucleares que necesita el sistema. Para iniciar el resto del sistema, init utiliza el fichero de configuración1.18 /etc/inittab1.19. Mediante este fichero podemos ajustar el inicio del sistema para que se ejecute según nuestros intereses.

Un ejemplo de fichero /etc/inittab1.20 es:

 

# /etc/inittab: init(8) configuration.

# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# The default runlevel.

id:2:initdefault:

# Boot-time system configuration/initialization script.

# This is run first except when booting in emergency (-b) mode.

si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.

~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change

# of runlevel.

#

# Runlevel 0 is halt.

# Runlevel 1 is single-user.

# Runlevels 2-5 are multi-user.

# Runlevel 6 is reboot.

l0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1

l2:2:wait:/etc/init.d/rc 2

l3:3:wait:/etc/init.d/rc 3

l4:4:wait:/etc/init.d/rc 4

l5:5:wait:/etc/init.d/rc 5

l6:6:wait:/etc/init.d/rc 6

# Normally not reached, but fallthrough in case of emergency.

z6:6:respawn:/sbin/sulogin

# What to do when CTRL-ALT-DEL is pressed.

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# Action on special keypress (ALT-UpArrow).

#kb::kbrequest:/bin/echo "Keyboard Request-edit /etc/inittab to let this work."

# What to do when the power fails/returns.

pf::powerwait:/etc/init.d/powerfail start

pn::powerfailnow:/etc/init.d/powerfail now

po::powerokwait:/etc/init.d/powerfail stop

# /sbin/getty invocations for the runlevels.

#

# The "id" field MUST be the same as the last

# characters of the device (after "tty").

#

# Format:

# <id>:<runlevels>:<action>:<process>

#

# Note that on most Debian systems tty7 is used by the X Window System,

# so if you want to add more getty's go ahead but skip tty7 if you run X.

#

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

2:23:respawn:/sbin/getty 38400 tty2

3:23:respawn:/sbin/getty 38400 tty3

4:23:respawn:/sbin/getty 38400 tty4

5:23:respawn:/sbin/getty 38400 tty5

6:23:respawn:/sbin/getty 38400 tty6

# Example how to put a getty on a serial line (for a terminal)

#

#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

# Example how to put a getty on a modem line.

#

#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3

 

Las entradas de este fichero son de la forma:

etiqueta:niveldeejecución:acción:comando
donde:

etiqueta
etiqueta única de un máximo de 4 caracteres
niveldeejecución
lista de niveles de ejecución (se ve después) en los que se ejecuta el proceso
acción
explicaremos sólo las más usuales, para el resto de acciones ver los documentos de ampliación ya comentados

ctrlaltdel
comando a ejecutar si se pulsa la combinación de teclas1.21 [CTRL]+[ALT]+[DEL]
initdefault
nivel de ejecución por defecto
once
el comando se ejecuta sólo una vez después de entrar en el nivel de ejecución seleccionado
powerfail
comando a ejecutar si se recibe una señal SIGPWR (indica algún problema con la alimentación eléctrica)
powerokwait
se ejecuta el comando si el SAI manda una señal indicando que se ha restablecido el nivel de energía eléctrica.
respawn
se inicia una nueva instancia del proceso cada vez que termine
sysinit
el script se ejecuta en la fase de arranque del sistema, independientemente del nivel de ejecución1.22.
wait
se ejecuta el comando una sola vez al iniciar el nivel de ejecución. Pero hasta que no termina el comando no se hace nada más.
comando
comando a ejecutar
Hay que tener mucho cuidado a la hora de modificar este fichero ya que nos arriesgamos a que Linux no pueda arrancar.

No vamos a entrar en la modificación de todos los aspectos que gestiona este fichero, tan sólo vamos a comentar cómo modificar los niveles de arranque.



Footnotes

...1.17
Si después queremos acceder a esa salida por pantalla podemos usar la orden

$ dmesg

Para poder verla mejor, es usual usar (para salir q)

$ dmesg | less

... configuración1.18
Se trata de un fichero de configuración y no de un script (fichero en el que hay un conjunto de órdenes del sistema operativo que se van ejecutando secuencialmente, de igual manera que si las vamos escribiendo una detrás de otra desde la línea de comandos, un script podemos entenderlo como un fichero BAT del ``antiguo'' MSDOS), es decir, el orden en el que se escriben las líneas no es significativo.

En primer lugar init ejecuta el script /etc/init.d/rcS. Este script, irá llamando a los ficheros necesarios para configurar las variables de entorno, iniciar los sistemas de ficheros, ...

.../etc/inittab1.19
Quien quiera profundizar sobre el tema puede consultar la página man del fichero inittab
.../etc/inittab1.20
Como siempre los # indican líneas de comentarios
... teclas1.21
Merece la pena fijarse en la línea:

ca::ctrlaltdel:/sbin/shutdown -t1 -a -r now

si la mantenemos permitimos que cualquier usuario pueda hacer un reset con nuestra máquina con sólo pulsar [CTRL]+[ALT]+[DEL].

... ejecución1.22
/etc/init.d/rcS $\longrightarrow$ A ``grosso modo'' podemos decir que se encarga de configurar/cargar todo el sistema (los OK del inicio).


Subsections
next up previous contents
Next: Niveles de arranque Up: Inicio del Sistema Previous: Por si se opta

2004-03-15