Schrift
[thread]9792[/thread]

SSH-Verbindung trennen - Perl-Script weiterlaufen

Leser: 1


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Teutales
 2006-05-08 12:12
#95637 #95637
User since
2006-03-21
47 Artikel
BenutzerIn
[default_avatar]
Hi,

ich stelle eine SSH-Verbindung zu einer Linux-Kiste her. Auf dieser möchte ich ein Perl-Script anstoßen, das auch bei Trennung der SSH-Verbindung weiterlaufen soll.
Zum testen habe ich mir ein kleines Perl-Script geschrieben, dass lediglich ein sleep(8000) durchführt.
Allerdings stirbt das Programm bei jedem Logout ab. Folgende Aufrufe habe ich ausprobiert:
perl sleep.pl &
nohup perl sleep.pl
nohup perl sleep.pl &
Außerdem wurde mir der Aufruf mit sh empfohlen, da kommt aber folgende Meldung: "perl: /usr/bin/perl: cannot execute binary file

Vielen Dank schon mal im Voraus
bloonix
 2006-05-08 12:43
#95638 #95638
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hi, dass Problem hatte ich auch mal.

Das klappt nicht, weil STDERR und STDOUT noch immer an
der SSH Verbindung hängen. Wenn du die umleitest, dann
müsste es klappen. Versuche mal

Code: (dl )
MeinSkript.pl 1>/dev/null 2>/dev/null &


Edit: ich suche mal den Thread hierzu...

Edit: gefunden Remote Prozesse starten\n\n

<!--EDIT|opi|1147078706-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
nepos
 2006-05-08 12:50
#95639 #95639
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, wenn du screen zur Verfuegung hast, koenntest du das Skript in ner Screen starten und dann ausloggen. Dann rennt dein Skript garantiert weiter und du kannst dir spaeter, wenn du wieder einloggst sogar die Ausgaben ansehen.
bloonix
 2006-05-08 13:01
#95640 #95640
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=opi,08.05.2006, 10:43]
Code: (dl )
MeinSkript.pl 1>/dev/null 2>/dev/null &
[/quote]
Ich möchte noch hinzufügen, dass du im Skript selber STDERR
und STDOUT in eine Datei umleiten solltest, damit deine
Ausgabe nicht verloren geht.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Teutales
 2006-05-08 13:46
#95641 #95641
User since
2006-03-21
47 Artikel
BenutzerIn
[default_avatar]
Erst einmal vielen Dank für eure schnelle Antworten.
@nepos: Screen steht mir leider nicht zur Verfügung.
@opi: Prozess geht leider trotzdem verloren, klang aber gut...
bloonix
 2006-05-08 14:31
#95642 #95642
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=Teutales,08.05.2006, 11:46]@opi: Prozess geht leider trotzdem verloren, klang aber gut...[/quote]
Das kann ich mit bestem Willen nicht bestätigen!

Code: (dl )
1
2
3
4
5
6
rh165745@lxipr904:~> ssh -l oracle lxzpr001 'sleep 100 1>/dev/null 2>/dev/null &';
rh165745@lxipr904:~> ssh -l oracle lxzpr001 'ps -ef |grep sleep';
oracle   32046     1  0 12:31 ?        00:00:00 sleep 100
oracle   32058 32057  0 12:31 ?        00:00:00 bash -c ps -ef |grep sleep
oracle   32064 32058  0 12:31 ?        00:00:00 grep sleep
rh165745@lxipr904:~>


Wie du siehst, wird PID 1 (init) der Vaterprozess von sleep.\n\n

<!--EDIT|opi|1147096804-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
nepos
 2006-05-08 14:44
#95643 #95643
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
So scheints zu klappen.
Wenn man sich vorher einloggt und das gleiche macht haengt die Shell solange beim Logout, bis der Prozess fertig ist.
Hat wohl damit was zu tun...\n\n

<!--EDIT|nepos|1147085174-->
bloonix
 2006-05-08 14:55
#95644 #95644
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=nepos,08.05.2006, 12:44]So scheints zu klappen.
Wenn man sich vorher einloggt und das gleiche macht haengt die Shell solange beim Logout, bis der Prozess fertig ist.
Hat wohl damit was zu tun...[/quote]
mhmm... gibt es da vielleicht Unterschiede bei den Distros?
Ich habe den Ausschnitt 1:1 kopiert und eingefügt (Passwort-
abfrage gibt es wegen Public-Key nicht).

Ich habe es auf einem SLES 8 und SuSE 9.2 ausgeführt.
Keine Probleme wie du sehen kannst, die SSH Session wird
sofort beendet und der sleep läuft weiter.

Hast du das "&" hinten dran gehängt?

Versuche mal:

Code: (dl )
ssh -l <user> <maschine> 'nohup sleep 100 1>/dev/null 2>/dev/null &';


mit nohup wird dann zusätzlich das "Hangup" Signal ignoriert.\n\n

<!--EDIT|opi|1147086093-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Teutales
 2006-05-08 15:04
#95645 #95645
User since
2006-03-21
47 Artikel
BenutzerIn
[default_avatar]
OK, habs bis jetzt auch nur mit PuTTY probiert...
nepos
 2006-05-08 15:25
#95646 #95646
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Also, wenn ich mich mit SSH vorher einlogge, quasi ne Login-Shell habe und den Befehl dann ausfuehre und nen Logout mache, wartet die Shell, bis der Sleep fertig ist.
Wenn ich mich nicht erst in ner Shell einlogge, sondern das Kommando beim SSH-Befehl mit uebergebe, dann geht es so, wie du es gesagt hast. Die SSH-Verbdinung wird sofort wieder beendet, der Sleep laeuft aber weiter.
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2006-05-08 12:12.