
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 TOSTOP
opción.
Sin embargo, ¿cuál es la posición en otras sesiones que escriben a un tty? ¿Se puede controlar de alguna manera? Supongamos tty1
y tty2
, ambos con conchas. Me sorprendió que el siguiente comando estuviera activado shell2
en tty2
...
ls > /dev/tty1
... en realidad produjo la salida desde ls
el principio tty1
, sin importar cuál TOSTOP
estuviera configurada la opción tty1
. Dado que shell2
es parte de otra sesión, pensé que podría ser así, porque la TOSTOP
opció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 TOSTOP
opció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.