Moin.
Wie hast Du denn den Prozess in den Hintergrund gestellt?
Ich kann da kein Abtrennen feststellen.
'Im Hintergrund laufen' sollte hier einfach bedeuten, dass das Skript (exakt) einmal gestartet wird und dann ohne Interaktion mit irgendeinem Client unbegrenzt weiterläuft (solange die in $lock_file angegebene Datei existiert).
Was soll das stöndige öffnen und Schließen der Datei bewirken?
Äh - einen Locking-Mechanismus? Der Name sollte das doch irgendwie deutlich gemacht haben...
Da wo der Kommentar steht, steht natürlich eigentlich was anderes...
Wie meinst Du, mit einem einzigen unlink() im zweiten Script genau eine Lücke treffen zu können, in der das File nicht exclusiv gesperrt, bzw. geöffnet ist?
Daher das flock zwei Zeilen darüber (LOCK_EX blockiert bis zum Erhalt der Sperre - natürlich wäre es geschickt, den Rückgabewert zu prüfen und es im Zweifelsfall nochmal zu versuchen).
Das fclose in der nächsten Zeile hebt die Sperre natürlich vorzeitig auf; ich brauche es aber auch nur, um die Datei auf meiner Windows-Testumgebung löschen zu können - im Produktiveinsatz auf *nix-Systemen fliegt die Zeile einfach raus...
Christoph