Estoy intentando configurarsinitcomo init
para Linux (en una PC...). Mi objetivo en este momento es simplemente ejecutar un sencillo tty/bash
. No se requiere ningún montaje especial ya que el kernel ya tiene un root=/dev/sda2
archivo cmdline
.
Tengo sinit
binario como mi /sbin/init
y no estoy seguro de qué hacer a continuación. Sé que es necesario colocar algunos scripts, pero no entiendo cómo sinit
debería poder ejecutarlos o asociarlos con bash
.
Respuesta1
La página de manual incluida sinit.8 y el archivo README son muy explicativos para mí. Sin embargo, una introducción rápida para usted mientras busco la fuente:
- ejecutable principal de sinit,
/sbin/init
el kernel lo inicia como pid 1 - prepara el entorno inicial para ejecutar
/bin/rc.init
el script como proceso secundario independiente - se ejecuta
/bin/rc.init
como un proceso separado, por lo tanto,/bin/rc.init
contiene comandos para inicializar el sistema más allá de ese punto - entra en un bucle infinito donde detecta cualquier proceso zombificado y lee sus códigos de salida en ninguna parte
- Mientras está en un bucle infinito, sin embargo, puede ser interrumpido por señales. Las señales que define para escuchar son SIGUSR1 y SIGINT. SIGUSR1 obliga a init a ejecutarse
/bin/rc.shutdown
comopoweroff
nombre de script, mientras que SIGINT obliga a init a ejecutar el mismo script conreboot
nombre, para distinguir los modos de operación dentro del script. Tenga en cuenta que esas dos señales son sólo las que init escucha, cualquier cosa,incluidoSIGKILL y SIGSTOP los ignorará. Y sólo el superusuario puede enviar señales a init. SIGINT es generado por el kernel cuando presiona Ctrl-Alt-Delete, pero solo cuando se dice así (hay una llamada al sistema especial que generalmente realiza el proceso init, para permitir el envío de SIGINT en cad)
Entonces, fuera de esto, sinitno provee:
- scripts de inicio (debe escribir los suyos propios o adaptar los proporcionados por su distribución)
- formas de control (como niveles de ejecución), sólo dos comandos simples
Sin embargo, sinit es un lindo y pequeño inicio que funciona. Apuesto a que es muy bueno en sistemas integrados, así como en sistemas de escritorio simples sin problemas con los entornos de escritorio modernos.