Hallo,
wie kann ich verhindern, dass sich ein über CGI aufgerufener und fehlgeschlagener Systembefehl im ERROR_LOG verewigt?Obwohl hier ein exit(0) steht, erfolgt ein Eintrag in die LOG-Datei
Was genau steht denn im ErrorLog?
if( system("ping -c 4 $ping_string > $ping_file") ){
»» print "<h4>Unbekannter Host oder Fehler im Ping-Befehl</h4>";
»» unlink $ping_file;
»» exit(0);
}
Hm. system() halte ich für keine elegante Lösung in Deinem Fall, und die Umleitung der Ausgabe in eine Datei für noch schlechter. (Was ist, wenn Dein Skript zweimal parallel gestartet wird?)
Wenn es Dir darum geht, die Ausgabe eines Kommandos aufzufangen, gibt es dafür die backticks (also $msg = ping -c 4 $ping\_string
, siehe Kapitel "I/O-Operatoren").
Falls Du auch noch den Returncode des Kommandos brauchst: "The status value of the command is returned in $?", siehe Kapitel "Variablen".