Una sesión interactiva de inicio puede tener una terminal de control: un dispositivo de terminal asociado a la sesión y utilizado por el kernel para las señales generadas por la terminal y el control de trabajos. El campo TTY de los listados de procesos ayuda a identificar esa asociación.
Procesos · Lección 2
Terminal de control
Aprende cómo las terminales de control conectan las sesiones con la entrada interactiva, las señales y el control de trabajos del shell.
Dispositivos de terminal y pseudoterminal
El nombre TTY procede de los teletipos históricos. En Linux moderno, las interfaces de terminal son abstracciones de dispositivos y no necesariamente equipos físicos.
Una consola virtual del sistema puede aparecer con un nombre como tty1. Las combinaciones de teclas del escritorio para cambiar de consola varían según la distribución y no deben darse por supuestas. Un emulador de terminal, un inicio de sesión remoto o un multiplexor suele usar un par de pseudoterminales, cuyo lado interactivo aparece con un nombre como pts/3.
Muestra la terminal conectada a la entrada estándar de la orden actual con:
$ tty
/dev/pts/3
Este resultado está relacionado con el concepto más amplio de terminal de control, pero no es idéntico. Un proceso puede redirigir su entrada o salida estándar y seguir perteneciendo a una sesión con terminal de control.
¿Qué suele identificar un nombre como pts/3?
Sesiones, grupos de procesos y control de trabajos
Una terminal de control pertenece a una sesión, no únicamente a la orden que abrió una ventana. Dentro de esa sesión, la terminal mantiene un grupo de procesos en primer plano. El shell coloca una tubería en primer plano dentro de ese grupo para que pueda leer la entrada y recibir señales generadas por la terminal.
Por ejemplo, al pulsar Ctrl-C, el controlador de la terminal suele enviar SIGINT al grupo de procesos en primer plano. Un grupo en segundo plano que intenta leer de la terminal puede recibir SIGTTIN. Estas reglas permiten al shell coordinar trabajos en primer y segundo plano.
¿A qué procesos dirige normalmente una terminal la señal generada por Ctrl-C?
Leer la columna `TTY`
Solicita campos de proceso concretos cuando quieras una vista estable:
$ ps -o pid,tty,stat,cmd
Un nombre de terminal como pts/3 identifica la terminal de control registrada para ese proceso. Un signo de interrogación (?) suele significar que el proceso no tiene terminal de control.
Muchos procesos de servicios no tienen terminal de control porque un gestor de servicios los inicia independientemente de una sesión interactiva. Sin embargo, la ausencia de TTY no demuestra por sí sola que un proceso sea un daemon, y un trabajo del shell en segundo plano puede conservar una terminal de control.
¿Qué significa normalmente ? en la columna TTY de ps?
Cierre de la terminal y hangups
Cuando desaparece una conexión de terminal, el kernel o el software de terminal y sesión puede enviar SIGHUP a los procesos asociados. Un proceso puede terminar, capturar la señal, ignorarla o haberse configurado previamente para sobrevivir. Funciones del shell como disown, utilidades como nohup, multiplexores y gestores de servicios afectan al ciclo de vida.
Por tanto, cerrar una terminal no garantiza que todas las órdenes iniciadas desde ella terminen. Cuando importe la persistencia, consulta la sesión, el tratamiento de señales, las redirecciones y el supervisor del proceso.
¿Por qué es incorrecto afirmar que cerrar una terminal siempre termina todos los procesos iniciados en ella?
El laboratorio Gestionar y supervisar procesos de Linux ofrece un entorno seguro para comparar trabajos en primer y segundo plano y sus campos TTY.
Lección completada
Has completado Terminal de control
Ahora puedes relacionar una terminal de control con la gestión de procesos interactivos.
Distingue terminales virtuales de pseudoterminales.
Relaciona las señales de terminal con el grupo de procesos en primer plano.
Interpreta los nombres de terminal y
?en la salida deps.Trata el cierre de la terminal como una señalización, no como una terminación garantizada.
Guarda tu progreso
Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.
Crear una cuenta gratuita