Steuern der TTY-/Terminalausgabe aus einer anderen Sitzung/Shell

Steuern der TTY-/Terminalausgabe aus einer anderen Sitzung/Shell

Uns wird gesagt, dass ein TTY höchstens eine Sitzung steuern kann und dass TTYs darüber hinaus so gesteuert werden können, dass sie Hintergrundprozessgruppen innerhalb ihrer gesteuerten Sitzung nicht erlauben, in das TTY zu schreiben oder daraus zu lesen, wobei Ersteres durch die TOSTOPOption gesteuert wird.

Wie ist es jedoch mit anderen Sitzungen, die auf ein TTY schreiben? Kann das irgendwie gesteuert werden? Angenommen tty1und tty2, beide mit Shells. Ich war überrascht, dass der folgende Befehl shell2auf tty2...

ls > /dev/tty1

... hat tatsächlich die Ausgabe von lson erzeugt tty1, unabhängig davon, auf welche TOSTOPOption in gesetzt war tty1. Da shell2es sich insgesamt um Teil einer anderen Sitzung handelt, dachte ich, dass es daran liegen könnte, weil die TOSTOPOption tatsächlich das tut, was sie soll, wenn versucht wird, aus einer Hintergrundprozessgruppe zu schreiben. Kann mich jemand aufklären, was da los ist?

Antwort1

Die TOSTOPOption (beschrieben beispielsweise inUnix Power Tools, oderLinux-CSH-Skript wird bei Ausführung mit & (bg) in den Status „Suspended“ (TTY-Ausgabe) versetzt) bezieht sich auf dieHintergrundProzesse. In dieser Situation haben Vordergrund und Hintergrund einebekanntBeziehung.

Wenn Ihr Prozess jedoch ein Terminal geöffnet hat, hat er (fast immer) Berechtigungen darauf und ein anderer Prozess, der Ihnen gehört (und in einem anderen Terminal ausgeführt wird),nichtPersonen mit dieser Beziehung könnten dasselbe Gerät öffnen und darauf schreiben.

verwandte Informationen