- #1
C
cultsibi
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 19.03.2005
- Beiträge
- 64
- Reaktionspunkte
- 0
Diesen Code habe ich im Inet gefunden. Er soll innerhalb eines bestimmten intervalls (hier sind es 10 sec.) eine bestimmte Aufgabe erfüllen. In diesem Fall schreibt er jewails immer eine 1 und einen Zeilenumbruch in eine txt Datei names ausgabe.txt
Die Anwendung wird erst gestartet, wenn man dieses Script aufruft und dazu in der Datei state.txt das Wort run steht. Wenn man später das runmit einem shutdown überschreibt und speichert soll die Anwendung beendet werden.
Mein Problem ist, dass er die Anwendung nicht beendet. Schreibt man nämlich später noch einmal ein run in die state.txt, so fügt er weiterhin alle 10 sec. eine 1 und einen Zeilenumbruch hinzu, obwohl das Script nicht wieder neu aufgerufen wurde...
Mein Ziel ist es, dass dieser Prozess komplett beendet wird, und nicht stillschweigend im Hintergrund weiter läuft.
Bitte um Fehleranalyse und Verbesserung
Die Anwendung wird erst gestartet, wenn man dieses Script aufruft und dazu in der Datei state.txt das Wort run steht. Wenn man später das runmit einem shutdown überschreibt und speichert soll die Anwendung beendet werden.
Code:
<?php
ignore_user_abort(true);
ini_set(max_execution_time,0);
while (1)
{
if ( ! tickfunction() ) { exit(); }
sleep(10);
}
function tickfunction()
{
$file = fopen(state.txt,r);
$ausgabe = fopen(ausgabe.txt,a);
$contents = fread($file, filesize(state.txt));
if ( $contents==run)
{
fwrite($ausgabe,1\n);
} elseif ( $contents==shutdown ) { return false; }
return true;
}
?>
Mein Problem ist, dass er die Anwendung nicht beendet. Schreibt man nämlich später noch einmal ein run in die state.txt, so fügt er weiterhin alle 10 sec. eine 1 und einen Zeilenumbruch hinzu, obwohl das Script nicht wieder neu aufgerufen wurde...
Mein Ziel ist es, dass dieser Prozess komplett beendet wird, und nicht stillschweigend im Hintergrund weiter läuft.
Bitte um Fehleranalyse und Verbesserung