Thread Net::OpenSSH > nachfolgende, abhängige Kommandos (11 answers)
Opened by Martin at 2013-09-19 18:32

topeg
 2013-09-23 16:38
#170521 #170521
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Wie ich es verstanden habe:

Blocking betrifft die Art wie die Daten Transferiert über die SSH-Verbindung transferiert werden. bei "blocking(1)" kann nur ein Programm auf dem Zielsystem Daten senden/empfangen. "blocking(0)" eralubt es das die Daten "durchgereicht" werden.

Beispiel:
Es werden mehrere Programme in der selben Shell gleichzeitig gestartet: cmd1 &; cmd2 &; cmd3 &;
Sollte das erste auf dem Zielsystem gestartete Programm nicht von STDIN Lesen können ( close(STDIN) ) werden die Daten an das zweite Programm weitergereicht. usw. So verhält sich auch eine normale Shell.
Mit "blocking(1)" erzwingt man, dass nur das erste Programm die Daten bekommt. Das ist bei manchen embedded Terminals wichtig, da kann es ansonsten zu Problemen kommen, weil einem "schlafenden" Prozess Daten zugeschoben werden.

Die Sache mit dem "\r\n"
Viele Embedded Linux Systeme benutzen BusyBox als Shell. Das bündelt viele Programme in einem (ls, mkdir, echo, cat und so weiter) BusyBox ist dahin optimiert möglichst sparsam zu sein. Beim kompilieren kann festlegen welche Befehle vorhanden sein sollen. Und man kann auch im gewissen Maße die "Kompatibilität" festlegen. Da gibt es auch eine Einstellung, in der sich die Shell ähnlich zur Dosbox verhält.

View full thread Net::OpenSSH > nachfolgende, abhängige Kommandos