Schrift
[thread]6844[/thread]

Net::SSH und Endlosprogramm im Hintergrund starten

Leser: 1


<< >> 6 Einträge, 1 Seite
Reputation
 2005-04-05 01:16
#53246 #53246
User since
2005-03-09
9 Artikel
BenutzerIn
[default_avatar]
Hallo.
Ich bin ein weiteres Mal auf ein Problem gestoßen, welches ich alleine nicht lösen kann.
Ich will mit Net::ssh:Perl auf einen anderen Rechner zugreifen und da ein selbstgeschriebenes Programm im Hintergrund starten.
Das selbstgeschriebene Programm ist eine endlosschleife (Teil von einem Wrapper).
Wenn ich das Programm nun aber mit
Code: (dl )
$sshd->cmd("/test/prog.pl&");
starte, dann wartet dieser Befehl auf einen exit-code, der natürlich niemals eintritt. (Da es sich beim dem zu startenden Programm ja um eine Endlosschleife handelt)

Ich habe also versucht über $sshd->cmd ein anderes Programm zu starten, welches mit Hilfe von exec mein Endlosprogramm startet. Auch das funktionierte nicht.

Als letztes habe ich es mit Hilfe von fork versucht. Ich starte mit fork einen childprozess, dieser führt das Endlosprogramm aus. Der Elternprozess dagegen gibt "lalala" aus und beendet sich.
Hierbei ist es so, dass cmd wirklich einen exit-code bekommt und weiter geht. Wenn ich danach jedoch auf dem anderen Rechner schaue, läuft das Endlosprogramm noch immer nicht.

Ich hoffe Ihr habt noch eine weitere Möglichkeit, die mir hilft meinen Plan in die Tat umzusetzen.

PS. Sorry für den langen Text, aber ich wollte das Problem gerne so genau wie möglich beschreiben.

Danke für jede Antwort.....Marcel
Etwas nicht tun zu können ist kein Grund etwas nicht zu tun.
esskar
 2005-04-05 01:25
#53247 #53247
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Reputation,04.04.2005, 23:16]PS. Sorry für den langen Text, aber ich wollte das Problem gerne so genau wie möglich beschreiben.[/quote]
so nebenbei: genau so ist es richtig!

zum fork: normalerweise steben die kinder, wenn der papa stirbt!

kannst du so wie du sagst, mozilla oder ähnliche andere programme mit & starten?
Reputation
 2005-04-05 11:30
#53248 #53248
User since
2005-03-09
9 Artikel
BenutzerIn
[default_avatar]
Hi esskar,

ich weiß jetzt nicht ob ich die Frage richtig verstanden habe.
Generell kann ich über die normale ssh-Konsole natürlich alle Programme mit & starten. Die laufen dann im Hintergrund.
Bei dem Perl Modul würde das generell wohl auch funktionieren.
Aber weil das cmd-Commad auf einen exitcode wartet gibt es leider die Probleme.
Gibt es keine Möglichkeit dass der Child-Prozess auch als "Waise" überlebt?
Sonst wäre mir noch eine Art Wrapper eingefallen, der die ganze Zeit auf dem Server läuft. Der bekommt einen Befehl in eine Datei, die er ständig überprüft. Wenn nun ein Befehl in der Datei steht führt er das aus.
Das ist aber nur eine absolute Notlösung, die ich eigentlich auf keinen Fall realisieren möchte.
Etwas nicht tun zu können ist kein Grund etwas nicht zu tun.
renee
 2005-04-05 12:24
#53249 #53249
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Vielleicht solltest Du Daemons erzeugen...

http://www.webreference.com/perl/tutorial/9/
CPAN:Proc::Daemon
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Dubu
 2005-04-05 22:22
#53250 #53250
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Wie sieht es mit
Code: (dl )
$sshd->cmd("nohup /test/prog.pl &");
aus?
Reputation
 2005-04-06 13:31
#53251 #53251
User since
2005-03-09
9 Artikel
BenutzerIn
[default_avatar]
Hi Leute.

Erst einmal entschuldige ich mich für die späte Antwort.

Ich habe beide Tipps ausprobiert, leider wollte es bei keinem der beiden Möglichkeiten klappen.
Langsam bin ich ein wenig enttäuscht von dem SSH-Modul.

Ich habe mich jetzt meinem Schicksal gefügt und führe den Befehl umständlich über einen Wrapper aus.

Aber vielen Dank für Eure Hilfe, jetzt weiß ich auch wie ich einen vernünftigen Deamon schreiben kann. :D
Etwas nicht tun zu können ist kein Grund etwas nicht zu tun.
<< >> 6 Einträge, 1 Seite



View all threads created 2005-04-05 01:16.