Wie kann ich eine Schleife zwischen zwei TTYs schaffen?
Frage
Jeder Hallo hat eine Antwort. Zweiter TTY wird ein Hallo an den Sender TTY und umgekehrt an:
echo 'echo hello > /dev/pts/1' > /dev/pts/0
Der erste Empfänger soll „Hallo“ an den ursprünglichen Absender schicken, aber es funktioniert nicht. Was ist falsch?
[Klarstellung] Ich habe zwei Schalen ausgeführt wird. / Dev / pts / 1 der anfängliche Absender ist.
Lösung
Wenn Sie Ihren Befehl echo senden Sie buchstäblich nur /dev/pts/0
sind die Ausgabe dieses Echo des anderen TTY Senden der Ausgabe - Sie sind nicht auf die andere TTY des Senden input Puffer. Daher verschachtelter echo
Befehl wird einfach auf der anderen TTY angezeigt, aber nicht ausgeführt.
Es gibt eine ioctl()
Anruf TIOCSTI
, die zu fälschen Eingabe auf einem anderen TTY verwendet werden können, aber nur, wenn Sie „schreiben“ die Erlaubnis, dass andere TTY.
Vor vielen Jahren erinnere ich mich, dass einige Freunde und ich Löcher auf einigen UNIX-Versionen entdeckt, die nicht korrekt die Sicherheitsberechtigungen auf TIOCSTI zusetzen haben. Wenn root einen Terminal in irgendwo angemeldet verlassen hatte war es möglich, die Root-Benutzer-Terminal-Typen in Befehlen in Ihrem Namen zu machen ...