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