Introducción
Cada vez que arranca un servidor Linux, la pantalla de bienvenida culmina invariablemente en la clásica petición login:. Detrás de esta interfaz textual opera un componente fundamental del espacio de usuario: el demonio agetty. En lugar de perdernos en extensos manuales teóricos, este tutorial aborda su integración directa con systemd, la personalización avanzada del banner informativo (/etc/issue) y la puesta en marcha de inicios de sesión automáticos, ofreciendo soluciones prácticas listas para entornos de producción.
Fundamentos operativos de agetty e inspección en systemd
Para localizar con exactitud la ruta del binario ejecutable dentro de la estructura de directorios, recurrimos a which agetty.

La tarea primordial de agetty radica en abrir puertos serie o terminales virtuales (TTY), inicializar los modos de control del terminal y desplegar la solicitud de credenciales ante el usuario. Mediante la bandera de versión podemos verificar qué capacidades soporta la compilación activa en el sistema.
⚙️ [Parámetros destacados]
-a, --autologin : Inicia sesión directamente con el usuario indicado, omitiendo el prompt interactivo de credenciales.-J, --noclear : Preserva los mensajes previos del buffer de arranque en pantalla antes de mostrar el login, evitando el borrado automático.-f, --issue-file : Especifica un archivo alternativo para el banner previo al inicio de sesión.-o, --login-options : Pasa parámetros y argumentos personalizados al binario posterior /bin/login.-n, --skip-login : Omite la petición del nombre de usuario y transfiere el flujo a la siguiente fase de autenticación.-8, --8bits : Configura el puerto para procesar secuencias de caracteres en 8 bits.

Para auditar el estado del servicio gestionado por systemd que controla la consola virtual principal (tty1), ejecutamos systemctl status [email protected] --no-pager.
El reporte evidencia que el proceso agetty se mantiene en segundo plano, activo y a la espera de peticiones de inicio de sesión.

Creación de un banner personalizado para la consola mediante /etc/issue
El texto informativo previo a la autenticación se administra mediante /etc/issue. Podemos inspeccionar la plantilla actual con el comando cat /etc/issue.
En dicha salida destacan secuencias de escape nativas de agetty: la directiva \n representa el nombre de host asignado a la máquina, mientras que \l denota el identificador de la línea TTY en uso.

Antes de alterar parámetros globales del sistema, conviene respaldar el archivo original mediante sudo cp /etc/issue /etc/issue.bak.

Podemos diseñar un mensaje de bienvenida corporativo enriquecido con metadatos del kernel y hardware aprovechando el siguiente comando: echo -e '\n=== Welcome to Ubuntu Server (tty: \l) ===\nOS: \s \r (\m) | Time: \t\n' | sudo tee /tmp/custom_issue.
Esta plantilla incorpora comodines dinámicos tales como el terminal activo (\l), el nombre del sistema operativo (\s), la compilación del kernel (\r), la arquitectura física (\m) y la hora exacta (\t).

Para cerciorarnos de que los caracteres de escape no sufrieron alteraciones durante la concatenación, inspeccionamos el contenido con cat /tmp/custom_issue.

Ajuste fino de agetty mediante directivas drop-in de systemd
Examinamos la unidad base que gestiona tty1 ejecutando systemctl cat [email protected].
Este visor permite auditar la definición original en /usr/lib/systemd/system/[email protected], prestando especial atención a cómo se estructura la directiva ExecStart.

En lugar de alterar directamente los ficheros provistos por los paquetes base, el enfoque idóneo consiste en aislar los cambios en un directorio drop-in ejecutando sudo mkdir -p /etc/systemd/system/[email protected].

Para prevenir el vaciado de pantalla durante el arranque (manteniendo los logs visibles) y asignar velocidades de baudio específicas, creamos un archivo de modificación mediante: echo -e '[Service]\nExecStart=\nExecStart=-/sbin/agetty -o "-p -- \\u" --noclear -s %I 115200,38400,9600 vt220' | sudo tee /etc/systemd/system/[email protected]/noclear.conf.
Nótese que la primera asignación de ExecStart= se deja en blanco deliberadamente para anular la instrucción por defecto antes de declarar los nuevos argumentos de agetty.

Para que el gestor de servicios asimile los nuevos parámetros de configuración en memoria, ejecutamos systemctl daemon-reload.

Validamos la correcta fusión de las configuraciones lanzando systemctl cat [email protected].
El bloque complementario correspondiente a noclear.conf deberá figurar al final de la definición, confirmando el reemplazo efectivo de la directiva.

Supervisión de terminales virtuales (TTY) y consolas serie
Para monitorizar las instancias de consolas virtuales actualmente instanciadas y activas en el entorno, ejecutamos systemctl list-units --type=service 'getty@*' --no-pager.
La salida confirma que el servicio específico [email protected] se encuentra operativo y sirviendo a la consola principal del sistema.

En entornos embebidos o servidores cloud suele requerirse acceso fuera de banda por puerto serie; revisamos la disponibilidad de dichas plantillas ejecutando systemctl list-unit-files 'serial-getty*' --no-pager.
El comando constata la existencia de la plantilla [email protected], la cual permanece en espera (estado disabled) lista para ser vinculada a puertos COM específicos según se requiera.

Finalmente, para fiscalizar qué usuarios mantienen conexiones abiertas y qué terminales TTY se hallan ocupados en este instante, invocamos w.
Esta utilidad nos brinda de un vistazo la carga media del sistema (load average), el tiempo en línea y el detalle minucioso de cada sesión interactiva abierta.

A lo largo de este laboratorio hemos desmitificado el rol de agetty en el ecosistema Linux, abarcando desde su ciclo de vida en consolas físicas hasta su personalización avanzada mediante systemd.
Dominar estos mecanismos de bajo nivel proporciona una base sólida para resolver incidentes en la fase de inicialización y diseñar entornos de servidor optimizados.