Casi todos los procesos en Linux tienen una terminal de control. Pero, ¿qué es incluso un terminal de control? Vamos a averiguar.

Es posible que haya escuchado el término "terminal de control" en relación con los procesos de Linux. Es posible que esté confundido acerca de qué es un terminal de control. Afortunadamente, un terminal de control es fácil de entender.

¿Qué es una terminal de control?

Una terminal de control es una terminal donde se inicia un proceso de Linux. Por ejemplo, si ejecuta un comando desde el shell, la ventana de la terminal donde ingresó el comando es la terminal de control.

Los procesos iniciados con terminales de control heredan atributos del terminal padre. Esto se debe a la forma en que se inician los procesos en Linux. Cuando ejecuta un comando, el shell hace una copia de sí mismo, o "bifurcaciones", luego se reemplaza con el programa que desea ejecutar, o "ejecutivos".

Cómo ver qué procesos tienen una terminal de control

Es fácil ver procesos que tienen una terminal de control en Linux. Puedes usar el comando ps para verlos.

instagram viewer

Puede ver todos los procesos que pertenecen a todos los usuarios en el sistema, ya sea que tengan o no terminales de control, usando el "auxiliar" argumento:

pd auxiliar

Debido a que esto genera una gran cantidad de resultados en los sistemas Linux, puede ser útil canalizarlo a un buscapersonas, como menos:

ps auxiliar | menos

También puede ver las primeras líneas usando la utilidad head:

ps auxiliar | cabeza

En el resultado, verá una columna con la etiqueta "TTY". Esto indica el terminal de control de un proceso, si lo hay. Un proceso con un terminal de control mostrará "ttyx", donde "x" es el número de terminal o "pts", seguido de una barra inclinada (/) y el número de línea del pseudoterminal.

Dado que la mayoría de los terminales son en realidad emuladores de terminales, utilizan pseudoterminales o PTY. Los "pts" indican un emulador de terminal en lugar de un terminal físico o consola virtual.

Procesos sin terminales de control

En la mayoría de los sistemas Linux, la columna TTY mostrará un signo de interrogación (?) carácter en muchos procesos. Esto se debe a que el proceso no tiene una terminal de control. ¿Por qué pasó esto?

Los sistemas Linux ejecutan muchos demonios o servicios en segundo plano. Estos pueden ser servidores, como un servidor web, así como demonios que hacen muchas cosas básicas como ejecutar su conexión de red. Estos no necesitan usar una terminal, por lo que simplemente se ejecutan sin una.

Si inicia una aplicación gráfica desde el menú de un entorno de escritorio, tampoco tendrá una terminal de control.

Los multiplexores de terminal como GNU Screen o tmux le permiten desconectar un proceso. Si cierra la sesión pero mantiene el sistema en funcionamiento, es posible que ese proceso también carezca de una terminal de control.

Si tiene un proceso sin un terminal de control del que desea deshacerse, puedes usar la utilidad matar.

Ahora ya sabe sobre el control de terminales

Una terminal de control es una terminal desde la que lanzaste un comando. Es fácil ver qué procesos tienen y no tienen una terminal de control con el comando ps. Y muchos programas de Linux no lo hacen, ya sea porque son demonios o puede que los hayas desconectado con un multiplexor de terminal.

Los multiplexores como tmux no solo hacen que las sesiones de terminales locales persistan entre los inicios de sesión, sino que también son herramientas poderosas para conexiones SSH remotas.