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
ttygefunden , das Ihnen mitteilt, auf welchem TTY Sie sich gerade befinden. - Ich habe
writevtgefunden , das eine einzelne Textzeile auf ein anderes TTY schreibt. - Ich habe
chvtgefunden , 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.