GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtener menos ttys con Systemd?

No hay una necesidad real de deshabilitar los TTY "adicionales" como en systemd los gettys se generan bajo demanda:consulte man systemd-getty-generator para detalles. Tenga en cuenta que, de forma predeterminada, esta generación automática se realiza solo para los VT hasta VT6 (para imitar los sistemas Linux tradicionales).

Como dice Lennart en una entrada de blog:

Para hacer las cosas más eficientes, las solicitudes de inicio de sesión ahora se inician solo bajo demanda. A medida que cambia a los VT, el servicio getty se instancia en [email protected], [email protected] y así sucesivamente. Dado que ya no tenemos que iniciar incondicionalmente los procesos getty, esto nos permite ahorrar un poco de recursos y hace que el inicio sea un poco más rápido.

Si desea configurar un número específico de gettys, puede modificar logind.conf con la entrada adecuada, en este ejemplo 3:

NAutoVTs=3



En los sistemas basados ​​en Debian, hay un archivo que hace que se inicien 5 getty adicionales al inicio si acaba de construir un servidor (sin el servicio dbus):

/lib/systemd/system/getty.target.wants/getty-static.service

En él dice:

[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start [email protected] [email protected] [email protected] [email protected] [email protected]
RemainAfterExit=true

Simplemente borrar este archivo detendrá el desove de los getty adicionales. Siéntase libre de acortar la lista si solo desea generar un getty adicional (para 2 consolas virtuales). Tenga en cuenta que obtiene uno automáticamente en tty1 para que siempre tenga al menos una consola virtual.

Consulte también:systemd-logind.service no se inicia si falta dbus


Para deshabilitar gettys en determinados TTY 4-6 y posiblemente dejar 1-3 y 7-9 funcionando, ejecute:

for i in {4..6}; do
  systemctl mask [email protected]${i}.service
done

mask crea enlace simbólico /etc/systemd/system/{name} -> /dev/null que deshabilita efectivamente el servicio. Intente ejecutarlo a través de systemctl start mostrará el error Failed to start NAME.service: Unit NAME.service is masked.

Si tiene un servicio A. Wants=masked.service , luego start A tendrá éxito pero también generará un error de inicio de dependencia en el diario.

Si tiene B.service Requires=masked.service , luego start B también fallará.

Sí, necrorespuesta. Saludos.


Linux
  1. ¿Cómo escribir un script de inicio para Systemd?

  2. CentOS / RHEL 7:Cómo configurar serial getty con systemd

  3. Cómo redirigir la salida del servicio systemd a un archivo

  4. Cómo detener el servicio systemd

  5. ¿Cómo ejecuto un script antes que todo lo demás al apagar con systemd?

Cómo ejecutar Jenkins Container como servicio Systemd con Docker

Cómo ejecutar contenedores como servicio Systemd con Podman

Administrar cgroups con systemd

Cómo ejecutar Shell Script como servicio SystemD en Linux

Cómo comenzar con Arch Linux

¿Cómo ejecutar un script con systemd justo antes de apagar?