Pipelineelemente mit unterschiedlichen controlling terminals?

31/10/2009 - 03:36 von Hauke Laging | Report spam
Moin,

ich habe ein bisschen mit screen herumgespielt, erfolglos, und finde
bei Google auch den Thread dazu hier nicht wieder, an den ich mich
dunkel erinnere.

Kann man eine Pipeline so starten, dass die einzelnen Elemente
unterschiedliche controlling terminals haben? Sinn der Aktion wàre
vor allem, Konflikte zu vermeiden, die daraus entstehen, dass
mehrere Teile der Pipeline von der Tastatur lesen wollen.

Ich habe allerlei Varianten von

screen ... | screen

probiert, was meistens mit der Meldung

Must be connected to a terminal.

scheitert. Wenn ich das richtig verstehe, merkt eins der beiden
screens, dass ihm das physische Terminal nicht so richtig gehört und
startet gar nicht erst. Nun kann man screen aber auch benutzen, ohne
dass es sich das Terminal gleich greift. Aber

screen -d -m -S S1 cat | screen -d -m -S S2 less

vermeidet zwar die Fehlermeldung, startet aber nur eine
screen-Sitzung. Was da scheitert und warum, habe ich nicht
herausbekommen, weil die strace-Ausgabe (-f) zu der aufrufenden
Shell etwas wild ist.

Geht das überhaupt? Hat das schon mal jemand erfolgreich praktiziert?
Wen ja, wie? :-)


CU

Hauke
http://www.hauke-laging.de/ideen/
 

Lesen sie die antworten

#1 Leonard Orb
02/11/2009 - 14:22 | Warnen spam
Hauke Laging:

screen -d -m -S S1 cat | screen -d -m -S S2 less

vermeidet zwar die Fehlermeldung, startet aber nur eine
screen-Sitzung. Was da scheitert und warum, habe ich nicht
herausbekommen, ...



Das klappt deshalb nicht, weil das erste screen mit dem zweiten screen
in der Pipe steht, die Programme cat und less aber von ihren jeweiligen
screens mit eigenem Pseudo-Terminal gestartet werden.

Du hast danach einen detached screen, in dem "cat" auf Eingaben wartet.
Der screen mit less hat sich bereits wieder beendet, weil "less" ohne
Datei als Parameter auf einem Terminal nur eine Fehlermeldung ausgibt.

Sinn der Aktion wàre vor allem, Konflikte zu vermeiden, die daraus
entstehen, dass mehrere Teile der Pipeline von der Tastatur lesen
wollen.



Wàre das mit Eingabeumleitung nicht wesentlich einfacher in den Griff zu
bekommen?

Leo

Ähnliche fragen