Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

rsh im Hintergrund geht nicht

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

rsh im Hintergrund geht nicht

Beitrag von regexer »

Hallo,

wieder einmal etwas, dass ich nicht verstehe. Warum funkioniert der rsh im Hintergrund nicht! Beispiel:

Code: Alles auswählen

host:user-> rsh host2 "/bin/date > /tmp/test"
host:user-> rsh host2 "cat /tmp/test"
Mon Mar 21 13:11:49 CET 2005
host:user-> rsh host2 "/bin/date > /tmp/test" &
[1] 27375
host:user-> 
[1] + Stopped (tty input)  rsh host2 "/bin/date > /tmp/test"
host:user-> rsh host2 "cat /tmp/test"
Mon Mar 21 13:12:09 CET 2005
host:user-> kill -9 27375
host:user-> 
[1] + Killed               rsh host2 "/bin/date > /tmp/test"
Das tolle ist: Offensichtlich wird der zweite rsh-Befehl ausgeführt. Der Prozess wird jedoch automatisch gestoppt, und man muss ihn zum Beenden killen. Warum?

Danke für Erklärungsversuche. Vielleicht habe ich Moment einfach ein Brett vor dem Kopf ...
Benutzeravatar
nobbiew
Hacker
Hacker
Beiträge: 497
Registriert: 1. Mär 2004, 23:26

Beitrag von nobbiew »

Nur mal so ein schnellschuss, aber auf welcher seite wird der Prozess in den Hintergrund gebracht? Am Remotehost o. am Localhost?
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

nobbiew hat geschrieben:Nur mal so ein schnellschuss, aber auf welcher seite wird der Prozess in den Hintergrund gebracht? Am Remotehost o. am Localhost?
Auf dem localhost soll der Prozess in den Hintergrund. Zuerst dachte ich auch, es würde an der Interpretation des & liegen. Aber auch mit Klammern bekommt man diesen Stop.

Code: Alles auswählen

 ( rsh host2 "/bin/date > /tmp/test" ) &
...
Benutzeravatar
snaewe
Hacker
Hacker
Beiträge: 415
Registriert: 13. Dez 2004, 16:32
Wohnort: Zu Hause

Beitrag von snaewe »

Vielleicht

Code: Alles auswählen

rsh -n ....
??

(Auch nur 'n Schnellschuss...)

Stefan
Der Name Windows stammt ursprünglich aus dem Indianischen und
bedeutet: "Weißer Mann, der auf eine Sanduhr starrt."
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

snaewe hat geschrieben:Vielleicht

Code: Alles auswählen

rsh -n ....
Bin überrascht! Es funktioniert!

Nur verstehe ich nicht ganz warum. Dieses Signal bekommt man (so habe ich es zumindest verstanden), wenn der im Hintergrund gestartete Prozess einen input verlangt. Ein klassiker wäre hier zum Beispiel:

Code: Alles auswählen

touch asdf
chmod 000 asdf
rm asdf
rm: reguläre leere Datei (schreibgeschützt) »asdf« entfernen? y
Wenn man soetwas im Hintergrund startet, kriegt man auch das Stop-Signal:

Code: Alles auswählen

( touch asdf; chmod 000 asdf; rm asdf) &
Nur: Warum wird im anfangs erwähnten Beispiel auf einmal ein input verlangt???
Benutzeravatar
nobbiew
Hacker
Hacker
Beiträge: 497
Registriert: 1. Mär 2004, 23:26

Beitrag von nobbiew »

Schau dir mal von der man-Page den Abschnitt Bugs an.

Da steht eindeutig, dass das auch passiert, wenn keine Eingabe erwartet wird.
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

nobbiew hat geschrieben:Schau dir mal von der man-Page den Abschnitt Bugs an.

Da steht eindeutig, dass das auch passiert, wenn keine Eingabe erwartet wird.
Hmmm. Ich hatte das auf die csh bezogen. Aber du hast recht. Das bezieht sich auf den rsh im Allgemeinen.

Interessant ist, das SCO-Unix das gleiche Problem hat, weswegen ich ursprünglich keinen Bug vermutete. Vielleicht haben die doch voneinander abgeschrieben ... :wink:
Antworten