Controlando a saída tty/terminal de outra sessão/shell

Controlando a saída tty/terminal de outra sessão/shell

Somos informados de que um tty pode controlar no máximo uma sessão e, além disso, que os ttys podem ser controlados para não permitir que grupos de processos em segundo plano dentro de sua sessão controlada escrevam ou leiam a partir dela, sendo os primeiros controlados pela TOSTOPopção.

No entanto, qual é a posição de outras sessões escrevendo para um tty? Pode ser controlado de alguma forma? Suponha tty1e tty2, ambos com shells. Fiquei surpreso que o seguinte comando em shell2on tty2...

ls > /dev/tty1

... na verdade produziu a saída de lson tty1, não importa qual TOSTOPopção foi definida in tty1. Como shell2faz parte de outra sessão, imaginei que pudesse ser isso, porque a TOSTOPopção realmente faz o que deveria ao tentar gravar a partir de um grupo de processos em segundo plano. Alguém poderia me esclarecer o que está acontecendo?

Responder1

A TOSTOPopção (descrita, por exemplo, emFerramentas elétricas Unix, ouScript csh do Linux indo para suspenso (saída tty) ao executar com & (bg)) refere-se a um shellfundoprocessos. Nesta situação, o primeiro e o segundo plano têm umaconhecidorelação.

No entanto, se o seu processo abriu um terminal, ele (quase sempre) tem permissões sobre ele, e outro processo de sua propriedade (executando em um terminal diferente) que nãonãoter esse relacionamento poderia abrir o mesmo dispositivo e escrever nele.

informação relacionada