
Нам говорят, что tty может контролировать максимум один сеанс и, более того, tty можно контролировать так, чтобы не позволять группам фоновых процессов в пределах его контролируемого сеанса писать или читать с него, причем первое контролируется опцией TOSTOP
.
Однако, какова позиция в других сеансах записи в tty? Можно ли это как-то контролировать? Предположим, tty1
и tty2
, оба с оболочками. Я был удивлен, что следующая команда on shell2
on tty2
...
ls > /dev/tty1
...фактически вывел вывод из ls
on tty1
, независимо от того, какой TOSTOP
параметр был установлен в tty1
. Поскольку shell2
это полностью часть другого сеанса, я подумал, что это может быть он, потому что TOSTOP
параметр действительно делает то, что должен, при попытке записи из фоновой группы процессов. Может кто-нибудь просветить меня, что происходит?
решение1
Вариант TOSTOP
(описанный, например, вИнструменты Unix Power, илиСкрипт Linux csh переходит в режим Suspended (вывод tty) при запуске с & (bg)) относится к оболочкефонпроцессы. В этой ситуации передний план и фон имеютизвестенотношение.
Однако, если ваш процесс открыл терминал, он (почти всегда) имеет разрешения на него, и другой процесс, принадлежащий вам (работающий в другом терминале), который не имеетнетиметь такую связь, можно открыть одно и то же устройство и записать на него.