Управление выводом tty/терминала из другого сеанса/оболочки

Управление выводом tty/терминала из другого сеанса/оболочки

Нам говорят, что tty может контролировать максимум один сеанс и, более того, tty можно контролировать так, чтобы не позволять группам фоновых процессов в пределах его контролируемого сеанса писать или читать с него, причем первое контролируется опцией TOSTOP.

Однако, какова позиция в других сеансах записи в tty? Можно ли это как-то контролировать? Предположим, tty1и tty2, оба с оболочками. Я был удивлен, что следующая команда on shell2on tty2...

ls > /dev/tty1

...фактически вывел вывод из lson tty1, независимо от того, какой TOSTOPпараметр был установлен в tty1. Поскольку shell2это полностью часть другого сеанса, я подумал, что это может быть он, потому что TOSTOPпараметр действительно делает то, что должен, при попытке записи из фоновой группы процессов. Может кто-нибудь просветить меня, что происходит?

решение1

Вариант TOSTOP(описанный, например, вИнструменты Unix Power, илиСкрипт Linux csh переходит в режим Suspended (вывод tty) при запуске с & (bg)) относится к оболочкефонпроцессы. В этой ситуации передний план и фон имеютизвестенотношение.

Однако, если ваш процесс открыл терминал, он (почти всегда) имеет разрешения на него, и другой процесс, принадлежащий вам (работающий в другом терминале), который не имеетнетиметь такую ​​связь, можно открыть одно и то же устройство и записать на него.

Связанный контент