Tom: Skript jede Sekunde ausführen

Beitrag lesen

Hello,

Ich habe ein PHP-Skript geschrieben, was ich jede Sekunde laufen lassen will. Ich hab mir dann damit beholfen, dass ich in den HTML-Header einfach zunächst einmal ein
<meta http-equiv="refresh" content="1; url=test.php">
eingebaut habe.

Funktioniert auch so weit einwandfrei. Jetzt suche ich jedoch nach einer Möglichkeit, dieses Skript automatisiert ausführen zu lassen und ohne, dass der Anwender hierfür irgendein Fenster öffnen muss.

MMn ist ds für den Host gesünder, das Script durchlaufen zu lassen und zwischendurch mit einem Sleep() ruhig zu stellen. Dazu musst du einen Prozess bauen, der im Hintergrund läuft. Auf einem Linunx-Host kannst Du das per PHP tun, indem Du die Exec-Funkition enstprechend aufrufst.

Wenn Du Dir ein Script 'dauerlauf.php' erstellst, das eine Endlosschleife ausführt, dann kannst Du das mit

<?php   ### start_dauerlauf.php ###

echo "<h1>Starte Script</h1>\n";

$pid = exec("/usr/local/bin/php dauerlauf.php > /dev/null & echo $!");

echo "<p>Script inter PID $pid gestartet</p>\n";

?>

diesem Hilfsscript, das Du per Browser aufrufst, starten.

Wenn Du in die Schleife des Dauerlauf-Scriptes z.B. die Prüfung auf eine vorhandene Dummy-Datei einbaust (Schleife läuft nur solange, wie die Datei vorhanden ist), dann kannst Du es auch wieder per PHP stoppen, indem Du einfach die Datei weglöschst. Das Script kann dann enden, oder einfach nichts ausführen, je nachdem, wie Du es programierst.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de