Thread Systemaufruf, kehrt nicht zurück
(15 answers)
Opened by theresa at 2008-03-03 15:45
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. |