6.55. Sysvinit-2.85

El paquete Sysvinit contiene programas para controlar el arranque, ejecución y cierre del sistema.

Tiempo estimado de construcción: 0.1 SBU
Espacio requerido en disco: 0.9 MB
La instalación de Sysvinit depende de: Binutils, Coreutils, GCC, Glibc y Make

6.55.1. Instalación de Sysvinit

Sysvinit-2.85 tiene un error de “buffer overflow” (desbordamiento de pila). Bajo ciertas condiciones, modifica los valores de las variables de entorno. Corrígelo con:

patch -Np1 -i ../sysvinit-2.85-proclen-1.patch

Cuando se cambia de nivel de ejecución (por ejemplo cuando apagamos el sistema) el programa init envía las señales de finalización a aquellos procesos que él mismo inició y que no deben estar en ejecución en el nuevo nivel. Mientras lo hace, init muestra mensajes del tipo “Sending processes the TERM signal” (Enviando la señal TERM a los procesos), que parece indicar que se está enviando dicha señal a todos los procesos que hay en ejecución. Para evitar esta confusión, puedes modificar las fuentes para que ese mensaje diga en su lugar “Sending processes started by init the TERM signal” (Enviando la señal TERM a los procesos iniciados por init):

sed -i 's@Sending processes@& started by init@g' \
    src/init.c

Compila el paquete:

make -C src

Instala el paquete:

make -C src install

6.55.2. Configuración de Sysvinit

Crea un nuevo fichero /etc/inittab ejecutando lo siguiente:

cat > /etc/inittab << "EOF"
# Inicio de /etc/inittab

id:3:initdefault:

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

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

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

su:S016:once:/sbin/sulogin

1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600

# Fin de /etc/inittab
EOF

La opción -I '\033(K' le indica a agetty que envíe al terminal esta secuencia de escape antes de hacer nada más. Esta secuencia de escape cambia el conjunto de caractéres de la consola a uno definido por el usuario, que puede modificarse ejecutando el programa setfont. El guión de inicio console incluido en el paquete LFS-Bootscripts llama al programa setfont durante el arranque del sistema. Enviar esta secuencia de escape es necesario para las personas que utilizan fuentes de pantalla que no son ISO 8859-1, pero no afecta a los anglo-parlantes.

6.55.3. Contenido de Sysvinit

Programas instalados: halt, init, killall5, last, lastb (enlace a last), mesg, pidof (enlace a killall5), poweroff (enlace a halt), reboot (enlace a halt), runlevel, shutdown, sulogin, telinit (enlace a init), utmpdump y wall

Descripciones cortas

halt

Suele invocar a shutdown con la opción -h, excepto cuando el sistema ya se encuentra en el nivel de ejecución 0, en cuyo caso le indica al núcleo que apague el sistema. Anota en /var/log/wtmp que el sistema se va a cerrar.

init

El primer proceso que se inicia cuando el núcleo ha inicializado el hardware, el cual toma el control sobre el arranque e inicia todos los procesos que se le han indicado.

killall5

Envía una señal a todos los procesos, excepto a los procesos de su propia sesión para que no mate el intérprete de comandos desde el que fue llamado.

last

Muestra los últimos usuarios conectados (y desconectados), buscando hacia atrás en el fichero /var/log/wtmp. También muestra los inicios y paradas del sistema y los cambios de nivel de ejecución.

lastb

Muestra los intentos fallidos de acceso al sistema, que se registran en /var/log/btmp.

mesg

Controla si otros usuarios pueden o no enviar mensajes al terminal del usuario actual.

pidof

Muestra los identificadores de proceso (PIDs) de los programas especificados.

poweroff

Le indica al núcleo que cierre el sistema y apague la máquina (ver halt).

reboot

Le indica al núcleo que reinicie el sistema (ver halt).

runlevel

Muestra los niveles de ejecución anterior y actual tal y como figura en el último registro de nivel de ejecución de /var/run/utmp.

shutdown

Provoca el cierre del sistema de una forma segura, enviando señales a todos los procesos y notificando a todos los usuarios conectados.

sulogin

Permite el ingreso de root al sistema. Suele ser invocado por init cuando el sistema entra en el modo monousuario.

telinit

Le indica a init a qué nivel de ejecución debe cambiar.

utmpdump

Muestra el contenido de un fichero de registro de accesos dado en un formato comprensible por el usuario.

wall

Envía un mensaje a todos los usuarios conectados.