Ralf: PHP, Browser-Connections

Beitrag lesen

Hallo,

man kann die PID auch abfragen, und z. B. in ein File wegschreiben, ohne den Prozess in den Hintergrund zu stellen: getmypid(). Was im File drinsteht, ist im Prinzip egal, also für Infos nutzbar. Identifizieren kann man es über den Dateinamen. Hat man mehrere solcher Prozesse (in einer Multi-User-Umgebung durchaus normal) nutzt man für die PID-Files am besten ein eigenes Verzeichnis. Linux macht das ja sowieso so ähnlich mit den /proc/run-Files.

Dann kann man den Prozess auch mit kill und der PID beseitigen. Oder man bringt dem Prozess das Abfragen des Semaphors (z. B. PID-File) in der Schleife bei, so wie schon beschrieben. Dann benötigt man noch nicht einmal die PID, und der Prozess kann sich selber geordnet beenden. Sonst braucht es die von Rolf beschriebene Exit-Routine.

Aber gebe Tom Recht, dass man vom Browser angestoßene lang laufende PHP-Prozesse ohne Zwischenausgaben besser in den Hintergrund stellt. Dann ist die Browserverbindung (http) zum Server nämlich gleich wieder frei.

Früher haben die Browser nur zwei Verbindungen zum Server gleichzeitig zugelassen. Später waren es dann mal typisch acht. Wieviele das heute sind, weiß ich leider nicht. Zu Zeiten von AJAX braucht man vermutlich mehr.

LG
Ralf