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

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

ls > /dev/tty1

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

1 ответ1

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .