Perl problem mit system() command
Frederik Klama
fklama at Preaker.net
Tue May 13 10:12:02 CEST 2003
Hi leute, ich habe hier ein problem.
Ich habe mir ein schoenes kleines (5799B) perl cgi Script geschrieben
(index.pl) das ueber meinen Webserver (apache) das Modem zum einwaehlen
bringen soll.
Das Modem ist so konfiguriert das es sobald eine Verbindung ueber den ttyS
entsteht (DTR Signal) es sich zu meinem Provider einwaehlt.
Das heist also das ich nur noch den 'pppd' mit den richtigen parametern
aufrufen muss und schon habe ich eine Verbindung.
Dafuer habe ich mir schon vor einiger Zeit ein perl Script geschrieben
(dial-in), das eben dies macht und die ausgaben von 'pppd' parst und nach den
Verbindungsdaten nach beenden der Verbindung sucht und diese in eine MySQL-DB
schreibt. Dieses Script laeuft aber in Vordergrund (will ich auch nicht
aendern, weil ich dann mit Ctrl-C die verbindung trennen kann wenn ich es auf
der Konsole aufrufe). Ausserdem habe ich keine Ahnung wie ich es dazu bringen
koennte im Hintergrund zu laufen.
Wenn ich nun aber 'dial-in' ueber 'index.pl' aufrufe, haengt das Script exact
bei dem system() Aufruf. Das heisst das mein 2.5s Timeout nachdem das Script
neu laden sollte nicht funktioniert. Auch den system() Aufruf an das ende des
Scripts zu verlegen funktioniert nicht. Ich bekomme dann zwar die komplette
Seite zu sehen, aber das reload Timeout spricht nicht an.
Beim aufhaengen der Verbindung funktioniert das Timout problemlos da ich
dafuer nur ein 'kill' Kommando geben muss, und 'kill' das Signal sendet und
sofort beendet.
Im moment habe ich das mit einem "Reload" Button geloest den ich dann einfach
wenn das Script haengt klicke. Dies ist aber leider eine sehr unelegante
Loesung.
Hat irgendjemand eine idee wie ich das 'dial-in' Script aufrufen kann, ohne
das es das 'index.pl' Script anhaelt ("dial-in &" klappt nicht).
Ich habe beide Scripts an die Datei angehaengt. (Ich hoffe das niemand etwas
dagegen hat da es nur ca. 6.5kB sind.
Frederik Klama
PS: Sorry fuer die 'ae' 'oe' und 'ue' s, ich habe hier ein britisches keybord
und keine Umlaute. (Kann ich eigentlich irgentwie die Keymap fuer X aendern
damit ich die Umlaute auf beliebige Tastenkombinationen (Ctrl-Shift-A -> ae)
legen kann?)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dial-in
Type: application/x-perl
Size: 950 bytes
Desc: not available
URL: <http://lug-owl.de/pipermail/linux/attachments/20030513/7408e467/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: index.pl
Type: text/x-perl
Size: 5799 bytes
Desc: not available
URL: <http://lug-owl.de/pipermail/linux/attachments/20030513/7408e467/attachment.pl>
More information about the Linux
mailing list