Nachdem ich das etwa eine Stunde gegoogelt habe, kann ich nicht glauben diese Frage hat sich noch niemand gestellt…
Ich habe also ein Skript, das auf TTY1 ausgeführt wird. Wie bringe ich dieses Skript dazu, ein beliebiges Programm auf TTY2 zu starten?
- Ich habe
tty
gefunden , das Ihnen mitteilt, auf welchem TTY Sie sich gerade befinden. - Ich habe
writevt
gefunden , das eine einzelne Textzeile auf ein anderes TTY schreibt. - Ich habe
chvt
gefunden , wodurch sich ändert, welche TTY derzeit angezeigt wird.
Ich möchte nicht anzeigen TTY2. Ich möchte nur, dass das Hauptskript normal weiter ausgeführt wird, aber wenn ich manuell zu TTY2 wechsle, kann ich mit dem zweiten Programm interagieren.
Akzeptierte Antwort:
setsid sh -c 'exec command <> /dev/tty2 >&0 2>&1'
Solange nichts anderes das andere TTY (/dev/tty2
in diesem Beispiel) sollte dies funktionieren. Dazu gehört ein getty
Prozess, der möglicherweise darauf wartet, dass sich jemand anmeldet; mehr als einen Prozess zu haben, der seine Eingabe von einem TTY wird liest zu unerwarteten Ergebnissen führen.
setsid
sorgt dafür, dass der Befehl in einer neuen Sitzung gestartet wird.
Beachten Sie diesen command
müssen sich um die Einstellung von stty
kümmern Einstellungen richtig, z.B. schalten Sie den „Kochmodus“ und onlcr
ein so dass bei der Ausgabe eines Zeilenumbruchs ein Wagenrücklauf usw. hinzugefügt wird.