Linux From Scratch: Versión 3.3 | ||
---|---|---|
Anterior | Capítulo 6. Instalando los programas del sistema base | Siguiente |
Estimación del tiempo de construcción: 1 minuto Estimación del espacio de disco requerido: 630 KB |
Cuando se cambia de nivel de ejecución (por ejemplo cuando vamos a apagar el sistema) el programa init envía las señales TERM y KILL a todos los procesos que él mismo inició. Además, init muestra un mensaje en el monitor que dice "sending all processes the TERM signal" (enviando la señal TERM a todos los procesos) y lo mismo para la señal KILL. Esto implica que init envía esta señal a todos los procesos en ejecución, lo cual no es cierto. Para evitar esta confusión, cambiamos el archivo init.c de manera que el mensaje diga "sending all processes started by init the TERM signal" (enviando la señal TERM a todos los procesos iniciados por init) ejecutando los siguientes comandos. Si no quieres cambiar esto, sáltate este paso.
cp src/init.c src/init.c.backup && sed 's/\(.*\)\(Sending processes\)\(.*\)/\1\2 started by init\3/' \ src/init.c.backup > src/init.c |
Instala Sysvinit ejecutando los siguientes comandos:
make -C src && make -C src install |
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
halt anota en el fichero /var/log/wtmp que el sistema se va a venir abajo, y entonces le indica al núcleo que cierre, reinicie o apague el sistema. Si halt o reboot son llamados cuando el sistema no está en los niveles de ejecución 0 o 6, shutdown es invocado en su lugar (con las opciones -h o -r).
init es el padre de todos los procesos. Su función principal es crear procesos a partir de un guión almacenado en el fichero /etc/inittab. Este fichero normalmente tiene unas entradas que hacen que init active la creación de los terminales en cada línea en la que los usuarios pueden conectarse. También controla los procesos autónomos requeridos por un sistema particular.
killall5 es el comando killall de SystemV. Envía una señal a todos los procesos excepto a los procesos de su propia sesión, por tanto no puede matar el intérprete de comandos en el que se esté ejecutando el guión desde el que fue llamado.
last busca hacia atrás en el fichero /var/log/wtmp (o el fichero indicado con la opción -f) y muestra una lista con todos los usuarios conectados (y desconectados) desde que el fichero fue creado.
lastb es lo mismo que last, excepto que por defecto muestra los registros del fichero /var/log/btmp, que contiene todos los intentos fallidos de conexión.
mesg controla el acceso al terminal de un usuario por otros. Se usa para permitir o denegar a otros usuarios escribir en su terminal.
pidof encuentra los identificadores de procesos (PIDs) de los programas mencionados y muestra esos identificadores en la salida estándar.
poweroff es equivalente a "shutdown -h -p now". Para el ordenador y lo apaga (cuando se usa una BIOS compatible APM y APM está activado en el núcleo).
runlevel lee el fichero utmp del sistema (típicamente /var/run/utmp) para localizar el registro del nivel de ejecución, y entonces muestra el anterior y el nivel de ejecución actual del sistema en la salida estándar, separados por un espacio.
shutdown provoca la caída del sistema de una forma segura. Todos los usuarios conectados son notificados de que el sistema se va a venir abajo, y se bloquean los intentos de conexión al sistema.
sulogin es invocado por init cuando el sistema entra en el modo monousuario (esto se hace mediante una entrada en /etc/inittab). Init también intenta ejecutar sulogin cuando se le pasa la opción -b desde el gestor de arranque (p.e., LILO).