En los viejos tiempos simplemente modifiqué /etc/inittab. Ahora, con systemd, parece iniciar tty [1-6] automáticamente, ¿cómo debo desactivar tty [4-6]?
Parece que solo hay un archivo de servicio systemd, y utiliza a %Ipara discernir diferentes sesiones de tty. Espero no tener que eliminar ese servicio y crear cada uno [email protected]manualmente.
No hay una necesidad real de deshabilitar los TTY "extra", ya que bajo systemdgettys se generan bajo demanda: consulte man systemd-getty-generatorpara más detalles. Tenga en cuenta que, de forma predeterminada, este desove automático se realiza solo para los VT hasta VT6 (para imitar los sistemas Linux tradicionales).
Para hacer las cosas más eficientes, las solicitudes de inicio de sesión ahora solo se inician bajo demanda. A medida que cambia a los VT, el servicio getty se instancia a [email protected], [email protected], etc. Dado que ya no tenemos que iniciar incondicionalmente los procesos de 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 modificarlo logind.confcon la entrada apropiada, en este ejemplo 3:
NAutoVTs=3
1. De hecho , vale la pena leer toda la serie de publicaciones, que actualmente son 18, systemd para administradores .
Gracias por la respuesta, Jason. La aplicación de mi empresa se envía en un servidor físico y en distribuciones anteriores modificaríamos inittab para bloquear otros ttys.
jcbwlkr
11
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 servicio dbus):
Simplemente borrando este archivo se detendrá la generación adicional de getty. Siéntase libre de acortar la lista si solo desea generar un getty adicional (para 2 consolas virt). Tenga en cuenta que automáticamente obtiene uno en tty1, por lo que siempre tiene al menos una consola virtual.
NB: el archivo es propiedad del paquete systemd, por lo tanto, para modificarlo o eliminarlo, úselo dpkg-divertprimero. Pero también hay una forma nativa de systemd para quitarlo del camino: ejecutar sudo systemctl mask getty-static.servicey configurar el suyo propio/etc
Josip Rodin el
2
maskSi un servicio habilitado es ruidoso , sería más limpio crear una unidad con el mismo nombre /etcpara anular su contenido. Use ExecStart = / bin / true si desea comenzar cero estático getty.
sourcejedi
la otra forma correcta de systemd es anular la versión del paquete (nunca debería eliminar ese archivo) usando sudo systemctl edit getty-static.service, lo que creará un archivo de anulación que tiene prioridad sobre el /libone
ryeager
8
Para deshabilitar gettys en TTY particulares 4-6 y dejar posiblemente 1-3 y 7-9 funcionando, ejecute:
for i in {4..6}; do
systemctl mask getty@tty${i}.service
done
maskcrea un enlace simbólico /etc/systemd/system/{name} -> /dev/nullque efectivamente deshabilita el servicio. El intento de ejecutarlo systemctl startmostrará un errorFailed to start NAME.service: Unit NAME.service is masked.
Si tiene A.service Wants=masked.service, start Atendrá éxito pero también generará un error de inicio de dependencia en el diario.
Si tiene servicio B. Requires=masked.service, start Btambién fallará.
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 servicio dbus):
En ella dice:
Simplemente borrando este archivo se detendrá la generación adicional de getty. Siéntase libre de acortar la lista si solo desea generar un getty adicional (para 2 consolas virt). Tenga en cuenta que automáticamente obtiene uno en tty1, por lo que siempre tiene al menos una consola virtual.
Consulte también: systemd-logind.service no se inicia si falta dbus
fuente
dpkg-divert
primero. Pero también hay una forma nativa de systemd para quitarlo del camino: ejecutarsudo systemctl mask getty-static.service
y configurar el suyo propio/etc
mask
Si un servicio habilitado es ruidoso , sería más limpio crear una unidad con el mismo nombre/etc
para anular su contenido. Use ExecStart = / bin / true si desea comenzar cero estático getty.sudo systemctl edit getty-static.service
, lo que creará un archivo de anulación que tiene prioridad sobre el/lib
onePara deshabilitar gettys en TTY particulares 4-6 y dejar posiblemente 1-3 y 7-9 funcionando, ejecute:
mask
crea un enlace simbólico/etc/systemd/system/{name} -> /dev/null
que efectivamente deshabilita el servicio. El intento de ejecutarlosystemctl start
mostrará un errorFailed to start NAME.service: Unit NAME.service is masked.
Si tiene A.service
Wants=masked.service
,start A
tendrá éxito pero también generará un error de inicio de dependencia en el diario.Si tiene servicio B.
Requires=masked.service
,start B
también fallará.Sí, necroanswer. Aclamaciones.
fuente