Remote Befehl mit SSH

Hallo zusammen.

Ich versuche gerade über das Perl Modul "Net::SSH::perl" ein Remote Befehl
auf einem anderen Rechner auszuführen.

Ist auch alles eigentlich gar kein Problem und Funktioniert wunderbar solange der Befehl nachdem er ausgeführt wurde auch wieder sofort beendet.

Ich möchte auf dem Remote Host eine oder VPN Verbindung mit openswan neu starten. Das sieht dann ungefair so aus:

Code:
 my @cmd = ("ipsec auto --rereadsecrets",
                      "ipsec auto --delete $self->{conn}",
                      "ipsec auto --add $self->{conn}",
                      "ipsec auto --up $self->{conn}"
                     );
   
 foreach my $cmdn (@cmd){
    $ssh->cmd($cmdn);
 }

Bis zum 3 Befehl funktioniert auch alles wunderbar. Das Problem ist aber nun das der Befehl $cmd[3] erst zu Ende ist wenn die Verbindung auch wirklich aufgebaut wurde. Das bedeutet also wenn die Verbindung aus irgendwelchen Gründen nicht zu stande kommen kann der Befehl auch so lange ausgeführt wird und damit mein Program hängt.

Wenn ich den Befehl hingen in der Kommandozeile eingebe kann ich ihn einfach mit CTRL-C Abbrechen und dann läuft er automatisch im Hintergrund weiter.

Ich habe auch schon "ipsec auto --up $self->{conn} & " versucht um den Befehl dirket in den Hintergund zu stopen aber da kamm leider das selbe bei raus.

Ich frage mich also wie kann man diesen Befehl absetzen aber dann nicht auf das Ergebniss warten bzw genauso einfach wie mit CTRL-C Abbrechen?

Vielen Dank schon mal für eure Tips
 

Neue Beiträge

Zurück