Harry: Prozesse Gabeln in PHP

Beitrag lesen

Holladiewaldfee,

Eine vielzahl von Komandos lasse ich lieber von PHP abarbeiten (wer hat da gelacht?!), als von Shell, da ich PHP erheblich besser kennen als Shellscripte...

Pssst ... ich mach das auch so ;-)

<?php
$pid = pcntl_fork();

Wie habe ich mir genau diesen Punkt vorzustellen?

Ab diesem Punkt wird das gleiche Script von _zwei_ Prozessen statt nur einem abgearbeitet, die Du nur anhand der Variable $pid trennen kannst.

if ($pid == -1)
   {
   die("could not fork");
   }
elseif ($pid)
   {
   // we are the parent
   }
else
   {
   // we are the child
   }
?>

Genau da drück mir der Schuh.

$pid = -1 bedeutet: Es läuft weiterhin nur ein einziger Prozess, die Aufspaltung ist gescheitert.

Ist die Aufspaltung geglückt, hast Du nun zwei Prozesse: Einem, in dem die Variable $pid = 0 ist (der Kindprozess) und einer, in dem die Variable $pid > 0 ist (der ursprüngliche Prozess).

Der elseif / else Teil tut nun nichts anderes, als die beiden Prozesse (die ja nun quasi gleichzeitig ablaufen) in unterschiedliche Bahnen zu lenken. Das muß auch sein, ansonsten würden ja beide Prozesse den selber Kladeradatsch abarbeiten, was ja nur in den wenigsten Fällen wünschenswert sein dürfte.

Danke noch mal für Deine Antwort; ich habe Dir eine Mail geschrieben (mit sehr großem jpg-Anhang), da es schade wäre, wenn es für mich immer so aussehen sollte ;)

Ja, wie gesagt: Wenn ich mal Zeit übrig habe, korrigiere ich's ;-)
Danke Dir.

Ciao,

Harry

--
  Bald kommt die Waldfee ... (Projektphase: Planung)
  Bis dahin:
  http://harry.ilo.de/projekte/berge/