Terminal de control
100%

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.

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.

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?

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 de ps.

  • 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
Siguiente Lección
Volver a Procesos