exec() fork() oder boost.process
-
Hallo Gemeinde,
ich habe hier ein kleines Problem. Und zwar habe ich einen Daemon (Linux) geschrieben, nach dieser Anleitung: http://web.archive.org/web/20060603181849/http://www.linuxprofilm.com/articles/linux-daemon-howto.html
Der Daemon fragt in einem Intervall von 10 Sekunden eine Job-Datenbank ab, ob neue Aufträge vorliegen. Wenn es neue Aufträge gibt, müssen diese an ein PHP-Skript weitergeleitet werden. Das es ein PHP-Skirpt ist, darauf habe ich leider keinen Einfluss.
Um die Job-Infos an das PHP-Skript weiter zu leiten, muss ich ja ein PHP-Prozess starten der Aufruf würde so aussehen: /bin/php worker.php --param job-string
Jetzt habe ich quasi die Wahl, das ganze via system() zu machen, oder mit exec() / fork(), oder auch komplexer mit boost.process. Ich habe mir die Beschreibung aller drei Varianten durchgelesen und mit auch Beispiele angeschaut. Nur weiß ich immer noch nicht welche Vorgehensweise für welche Probleme gedacht sind.
Meine Anforderungen wäre:
* Der Exit-Code des PHP-Prozesses muss gelesen werden
* Wenn der PHP-Prozess stirbt (weil ihn jemand im explizit gekillt hat) muss der Daemon das mit bekommen
* Wenn der Daemon stirbt, muss der PHP-Prozess auch dran glauben, der darf nicht im Hintergrund wüten (sprich parent weg, child weg).Über ein paar Tipps würde ich mich freuen.
Gruß
The Dude