Controlar la salida de tty/terminal desde otra sesión/shell

Controlar la salida de tty/terminal desde otra sesión/shell

Se nos dice que un tty puede controlar como máximo una sesión y, además, que se puede controlar que los ttys no permitan que los grupos de procesos en segundo plano dentro de su sesión controlada escriban o lean en él, siendo el primero controlado por la TOSTOPopción.

Sin embargo, ¿cuál es la posición en otras sesiones que escriben a un tty? ¿Se puede controlar de alguna manera? Supongamos tty1y tty2, ambos con conchas. Me sorprendió que el siguiente comando estuviera activado shell2en tty2...

ls > /dev/tty1

... en realidad produjo la salida desde lsel principio tty1, sin importar cuál TOSTOPestuviera configurada la opción tty1. Dado que shell2es parte de otra sesión, pensé que podría ser así, porque la TOSTOPopción de hecho hace lo que se supone que debe hacer cuando se intenta escribir desde un grupo de procesos en segundo plano. ¿Alguien podría aclararme qué está pasando?

Respuesta1

La TOSTOPopción (descrita por ejemplo enHerramientas eléctricas Unix, oEl script csh de Linux pasa a Suspendido (salida tty) cuando se ejecuta con & (bg)) se refiere a un caparazónfondoprocesos. En esta situación, el primer plano y el fondo tienen unaconocidorelación.

Sin embargo, si su proceso ha abierto una terminal, (casi siempre) tiene permisos y otro proceso de su propiedad (que se ejecuta en una terminal diferente) que nonotener esa relación podría abrir el mismo dispositivo y escribir en él.

información relacionada