Hallo Ich habe ein Shellscript welchen ich nach ssh Login auf eiem remote Server aufrufe. Auf welcher Maschine läuft der Code dann? Wenn ich das Terminal Fenster schließe stoppt die Ausführung. Wenn ich versuche Daten aus xwininfo auszulesen zeigt er mir die Daten meines lokalen PC wenn ich aber lspci versuche bekomme ich die Daten des remote pc.
Normalerweise auf der Maschine auf der Du Dich einloggst, die Ausführung ist aber (vielleicht von der Distri oder Shell abhängig) an die SSH Session gebunden. Such mal danach, du must die Ausführung vom SSH abkoppeln, bin mir aber nicht mehr sicher wie (im Hintergund ausführen mit &). Wenn Du ssh beendest bist Du wieder auf der eigentlichen Maschine. //hufnala
Udo Balinger schrieb: > Ich habe ein Shellscript welchen ich nach ssh Login auf eiem remote > Server aufrufe. Auf welcher Maschine läuft der Code dann? Auf dem remote server. > Wenn ich das Terminal Fenster schließe stoppt die Ausführung. Wenn die Verbindung getrennt wird, dann bekommt das Programm/Script ein Signal namens "HUP" = Hangup gesendet. Das kann man vermeiden mit Tools wie screen. Damit bleibt die shell session laufen und man sich später wieder verbinden mit 'screen -R'. Man kann auch 'nohup' verwenden, wenn man das script nur weiterlaufenlassen will. > Wenn ich versuche > Daten aus xwininfo auszulesen zeigt er mir die Daten meines lokalen PC Die lokale Environment Variable "DISPLAY" wird an den Remote Rechner weitergeleitet. Alles was X-Window angeht verwendet diese Variable, d.h. der remote Rechner kontaktiert deinen lokalen Rechner und holt die Daten von dort. Für mal das folgende Kommando aus: echo $DISPLAY > wenn ich aber lspci versuche bekomme ich die Daten des remote pc. Ja, normale Kommandos werden dort ausgeführt wohin du verbunden bist. Michael
:
Bearbeitet durch User
Ich meine es war NOHUP No hangup - nicht aufhängen Der Code läuft selbstverständlich auf dem angerufenen System, wie auch die shell selbst
Michael D. schrieb: > Das kann man vermeiden mit Tools wie screen. Damit bleibt die shell > session laufen und man sich später wieder verbinden mit 'screen -R'. wenns geht tmux tmux forever ;-)
hufnala schrieb: > Normalerweise auf der Maschine auf der Du Dich einloggst, die Ausführung > ist aber (vielleicht von der Distri oder Shell abhängig) an die SSH > Session gebunden. Such mal danach, du must die Ausführung vom SSH > abkoppeln, bin mir aber nicht mehr sicher wie (im Hintergund ausführen > mit &). Und vom kontrollierenden Terminal abkoppeln mit nohup(1) -- oder in einem screen(1) oder Ähnlichem aufrufen... Jedenfalls: die SSH-Connection öffnet auf dem Remotehost ein "controlling tty". Wenn die SSH-Session beendet wird -- egal wie -- wird das kontrollierende Terminal auch geschlossen, wodurch den darin laufenden Prozessen ein Signal (IIRC SIGHUP) zum Beenden gesendet wird. Im Sinne der Systemhygiene ist das auch sinnvoll und muß im Falle des Falles explizit etwa mit den vorgenannten Maßnahmen verhindert werden.
Udo Balinger schrieb: > Hallo > Ich habe ein Shellscript welchen ich nach ssh Login auf eiem remote > Server aufrufe. Auf welcher Maschine läuft der Code dann? Auf beiden. Ein Teil (der ssh-Client lokal), ein anderer Teil (das auf dem entfernten Rechner ausgeführte Shellscript und der ssh-Server) remote. > Wenn ich das Terminal Fenster schließe stoppt die Ausführung. Das ist ein spezieller Mechanismus. Wenn du das lokale Terminal-Fenster schließt wird die Remote-Seite informiert (ordentliches Beenden) oder merkt es selber. Daraufhin wird auf dem Remote-Rechner der Remote-Login geschlossen. Beim Schließen eines Logins auf dem Remote-Rechner das Hangup-Signal an alle vom dem Login abhängigen Prozesse gesendet. Das kann man mit noh(ang)up verhindern. https://de.wikipedia.org/wiki/Nohup > Wenn ich > versuche > Daten aus xwininfo auszulesen zeigt er mir die Daten meines lokalen PC > wenn ich aber lspci versuche bekomme ich die Daten des remote pc. Das passt nicht zum Rest deiner Frage.
>> Wenn ich versuche >> Daten aus xwininfo auszulesen zeigt er mir die Daten meines lokalen PC >> wenn ich aber lspci versuche bekomme ich die Daten des remote pc. > > Das passt nicht zum Rest deiner Frage. Passt schon. Für jemanden, der das nicht kennt, ist es schon verwirrend, wenn er ein Programm auf dem Remote-Rechner startet, aber Daten von dem lokalen Rechner angezeigt bekommt. Die Programme, die über ssh auf dem Remote-Rechner gestartet werden, laufen auch da. Allerdings richtet es ssh standardmäßig so ein, dass Programme, die die grafische Oberfläche (X11) benutzen, die lokale Anzeige/Tastatur/Maus benutzen. Wenn man also in der ssh-Sitzung z.B. firefox startet, läuft der auf dem Remote-Rechner, die Fenster erscheinen aber auf dem lokalen Rechner. Wenn man das nicht möchte, kann man die Umgebungsvariable DISPLAY auf :0 setzen (export DISPLAY=:0) und dann erscheinen die Fenster auch auf der Anzeige des Remote-Rechners (so dort eine aktive Anzeige vorhanden ist und Zugriffsrechte vorhanden sind, z.B. in Form einer bereits bestehenden Sitzung des gleichen Benutzers).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.