Thread Systemaufruf, kehrt nicht zurück (15 answers)
Opened by theresa at 2008-03-03 15:45

theresa
 2008-03-17 16:58
#107136 #107136
User since
2007-07-17
90 Artikel
BenutzerIn
[default_avatar]
Im Prinzip,

Code: (dl )
my $return = `$text 2>&1`;


dann steht in $return die Rückgabe vom Programm. $text startet eine vpn-Verbindung.
Mögliche Rückgaben sind z.B. Syntax-fehler, profil nicht gefunden, verbindung nicht möglich wegen falschen Daten... also alles was in der cmd ausgegeben werden kann, wenn man die Zeile eingibt.

mit
Code: (dl )
my $return = system($text);


wird diese Rückgabe nicht abgefangen.

Mein Problem jetzt ist, dass wenn die Vpn Verbindung aufgebaut wird, dass Programm nicht zurückkehrt. Das Perl-Programm bleibt also da stehen und wartet.

Mit alarm war der Ansatz den Prozess, der gestartet wurde, nach 1 Sekunde abzubrechen (die Verbindung bleibt bestehen, ist also ok), so dass der Skript weitermachen kann.
Aber... alarm scheint nur mit system() zu arbeiten. Nicht mit ``.
Ich brauche unbedingt die Rückgabe, wenn z.B. falsche Daten beim Verbindungsaufbau eingegeben werden, müssen sie auch behandelt werden.

View full thread Systemaufruf, kehrt nicht zurück