Para SysV init
, necesito /etc/inittab
reaparecer las entradas de getty, el /sbin/init
binario, los binarios y las bibliotecas compartidas para el shell login
, el getty
, el PAM / seguridad / material oculto y algunos archivos de dispositivo.
Porque upstart
necesito los mismos requisitos, pero en lugar de eso /etc/inittab
, tengo algunos *.conf
archivos debajo /etc/init
: un * .conf con el start on startup
que establece un nivel de ejecución telinit
y un * .conf para cada tty que se inicia / reaparece getty
en ese tty en los niveles de ejecución adecuados .
¿Para qué configuración y binarios necesito systemd
init
?
La documentación que encuentro parece estar centrada en cómo usar un sistema ya instalado para iniciar y detener servicios.
Una lista mínima de archivos para copiar (excepto el kernel / initrd) de una instalación de Arch o fedora en ejecución estaría bien, pero parece que no puedo encontrar ese tipo de información systemd
.
Lo que me gustaría saber es, para systemd
qué archivos son necesarios y qué deben contener, para iniciar un shell de inicio de sesión después de que un initramfs hace su switch_root
llamada al systemd
/sbin/init
.
Ejemplo para upstart
, los binarios y dos *.conf
archivos:
Archivo /etc/init/whatever.conf
:
comenzar en el inicio emite runlevel tarea guión telinit 2 fin de guión
Archivo /etc/init/tty1.conf
:
comenzar en el nivel de ejecución [12345] reaparecer exec / sbin / agetty -8 --noclear 38400 tty1 linux
Ejemplo para sysvinit
, los binarios y 1 archivo conf llamado /etc/inittab
:
id: 2: initdefault: c1: 12345: reaparecer: / sbin / agetty 38400 tty1 linux
Ahora estoy tras el systemd
equivalente.
Supongo *.service
que se necesita al menos 1 archivo en alguna parte, con una [Service]
entrada que contenga ExecStart=-/sbin/agetty --noclear %I linux
y Restart=always
, pero ¿qué más se necesita?
Respuestas:
En primer lugar,
systemd
no es un unix tradicionalinit
. Systemd es mucho más, por lo que es un poco injusto comparar los dos.Para responder la pregunta, lo que parece ser necesario son algunos binarios y los siguientes archivos de configuración:
la emisión
systemctl enable console-getty.service [email protected]
crea estos enlaces simbólicos:NOTA : Para utilizar
systemd
las funciones especiales de inicioagetty
dinámico, bajo demanda al presionar Alt+ F3y así sucesivamente, parece que también debe tener al menos estos dos archivos:donde
[email protected]
es un enlace simbólico a[email protected]
.Contenido de los archivos de configuración:
El
default.target
,getty.target
,sysinit.target
archivos puede estar vacía a excepción de la[Unit]
etiqueta y (probablemente)Description=xxx
.basic.target
también contiene información de dependencia:No estoy seguro de si las referencias a destinos que no existen como archivos son necesarias o no. Se describen en la
systemd.special(7)
página del manual.console-getty.service
: (Caso especial para agetty en la consola)[email protected]
: (configuración genérica para todos los servicios getty excepto la consola)Finalmente, probablemente necesite algunos de estos binarios especiales (no he probado cuáles son cruciales):
Para resumir el proceso de inicio de systemd, creo que funciona más o menos así:
basic.target
(¿o todos los*.target
archivos?)WantedBy=
,Wants=
,Before=
,After=
... directivas en el[Install]
sector de las*.service
y*.target
los archivos de configuración.*.service
s que deberían comenzar (que no son servicios "especiales"), tienen una[Service]
sección con unaExecStart=
directiva, que señala el ejecutable para comenzar.fuente
[Install]
sección no es utilizada por la secuencia de arranque, solo porsystemctl enable
. Lo que se ve en el arranque son los enlaces simbólicos/etc/systemd/system/basic.target.wants/
, creados porsystemctl enable
.systemd
crea automáticamente un getty cuando cambia a las terminales, hasta un cierto número máximo. El valor predeterminado es 6 (por lo que obtiene automáticamente un getty para alt + f1 a alt + f6). Si desea cambiar este parámetro, puede editar/etc/systemd/logind.conf
para cambiar elNAutoVTs
parámetro a otro número (máximo 12)Si quieres un getty para desovar, incluso si no cambia de forma manual puede agregar un enlace simbólico a
/usr/lib/systemd/system/[email protected]
al/etc/systemd/system/getty.target.wants/
directorio:esto resultará en la
getty.target
necesidad de ungetty@
servicio más . Un objetivo es una colección de servicios que deben generarse, reemplazo de niveles de ejecución que admite dependencias. El objetivo predeterminado depende degetty.target
Consulte las preguntas frecuentes de systemd en ArchWiki
editar: investigué un poco más en la documentación .
Al arrancar, el
systemd
daemon carga todos los sistemas en eldefault
destino y sus dependencias. Los archivos definen un objetivoUn objetivo tiene una lista de servicios adjuntos especificados por enlaces simbólicos en los directorios
La
/etc
versión anula los valores predeterminados de distribución en/usr/lib
. Solo.target
se requiere uno de los archivos, mientras que no se requiere ninguno del directoriogetty
es solo uno de los servicios entre otros que pueden ejecutarse mediante scripts de inicio. En la distribución que verifiqué (fedora, arch)getty
se ejecuta de dos maneras diferentes:/usr/lib/systemd/system/[email protected]
archivo en el que se sustituye el nombre tty porsystemd
el nombre del archivo del enlace )logind
cuando el usuario cambia a un terminal virtual (similar a la formainetd
en que los servicios antiguos aparecían solo cuando llega una solicitud).logind
es un demonio diferente distribuido consystemd
, y lee su configuración del/etc/systemd/logind.conf
archivo.Espero que esto sea satisfactorio.
fuente
systemd
. Estoy investigando un poco y parece bastante sencillo, una vez que entiendes cómo funcionan las cosassystemd
sea hostil, como al realizar una adquisición hostil de la forma en que se inicia un sistema abierto. Desactiva GNU / Linux de Unix. No digo que sea algo malo, pero es muy diferente de cómo han sido las cosas tradicionalmente. Buscar en Google un poco indica que no estoy solo.