PHP-Skript ständig im Hintergrund ausführen

PHP-Skript ständig im Hintergrund ausführen

Ich habe eine PHP-Datei erstellt, die eine Endlosschleife enthält, die bestimmte Prüfungen durchführt und reagiert, wenn sich Variablen ändern (der Inhalt des Skripts ist für meine Frage wahrscheinlich nicht sehr wichtig). Ich möchte, dass der Dienst immer ausgeführt wird, bis ich ihn anweise, anzuhalten. Nach einigem Suchen habe ich mich entschieden, nohupfür diese Aufgabe nohup zu verwenden. Der Nachteil von nohup besteht jedoch darin, dass ich nicht wirklich überwachen kann, ob der Dienst ausgefallen ist (außer, indem ich ihn manuell ausführe ps -auxund nach dem Prozess suche).

Ich habe auch Dinge über gelesen supervisord, die auch ganz gut klangen, aber ich bin irgendwie ratlos und weiß nicht wirklich, was die beste Lösung ist. Ich möchte, dass das PHP-Skript bei Neustarts automatisch gestartet wird, und ich möchte, dass der Dienst prüft, ob das Skript noch ausgeführt wird. Wenn nicht, möchte ich, dass es neu startet/eine Warnung ausgibt, damit ich nachsehen kann, was los ist.

nohupSollte ich entweder oder verwenden supervisord? Oder empfiehlt ihr etwas ganz anderes? Es wäre toll, wenn ich den Dienst in einem Docker-Container ausführen könnte, wo ich die Ausführung des Dienstes einfach in den einfügen könnte Dockerfile.

Antwort1

Hört sich an, als wären Sie mit der Verwendung des guten alten CRON besser dran.

Sie können jedes Skript so konfigurieren, dass es in beliebigen Intervallen ausgeführt wird. Ich würde jedoch nicht empfehlen, es kontinuierlich auszuführen. Vielleicht sollten Sie es alle 5 Minuten ausführen. Also etwa so:

*/5 * * * * php /path/to/php/file >/dev/null 2>&1

So können Sie mehr über CRON erfahren:https://linuxman.co/linux-server/cron-a-nosedive-into-lazy-sysadmin/

verwandte Informationen