exec() system() System-Crash, need help

Bash, Shell, PHP, Python, Perl, CGI
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: exec() system() System-Crash, need help

Post by kase »

Es ist auf jeden Fall so, dass aus irgendeinem Grund die datei.php immer und immer wieder ausgeführt wird, in einer endlos-Schleife, aber warum dies passiert, ist mir mit den mom Informationen nicht nachvollziehbar, und ich habe ehrlich gesagt auch nicht die Lust und Zeit dazu ;)

Ich dachte zuerst, dass er nach dem exec() der anderen Datei in der neuen Datei einen Error verursacht, weil die Rechte für das Verzeichnis nicht mehr stimmen, in das du schreiben willst, und dass er deswegen warum auch immer in ein LOOP fällt.

Ich weiß jetzt auch nicht mehr weiter. Vielleicht mal PHP neu installieren, kA

Edit: Und normalerweise startet man auch keine PHP Datei in einer anderen PHP Datei, das ist von der Logik her völliger Blödsinn, vor allem, wenn dann die "Main" Datei auch noch im Browser ausgeführt wird. Wenn man eine PHP Datei in einer anderen PHP Datei haben will, dann benutzt man da normalerweise include() oder require() oder require_once() je nachdem, was man halt braucht.
->x3<-
Posts: 18
Joined: 2004-01-11 19:27
 

Re: exec() system() System-Crash, need help

Post by ->x3<- »

Doch,
wenn die erste php nicht vom evtl fehler oder sonstirgendwelchen Gründen in der zweiten beeinträchtigt werden soll.
include() oder require() oder require_once() bringen da nichts.
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: exec() system() System-Crash, need help

Post by kase »

Versteh ich nicht...

Ob die erste PHP Datei nun bis zum require oder bis zum exec einen Fehler hat, in beiden Fällen wird die 2. PHP Datei nicht ausgeführt.

Wenn die 2. PHP Datei einen Error verursacht, wird dieser in beiden Fällen auch die 1. PHP Datei lahm legen. Oder was meinst du jetzt genau ? Für mich ist das in diesem Fall exakt das gleiche.
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: exec() system() System-Crash, need help

Post by majortermi »

kase wrote:PHP hat ein eigenes Process-Handling, sehr ähnlich dem von Linux. Man kann sich ganz einfach einen Child mit $childpid = pcntl_fork(); im parent machen.
Interessant, diese Funktion kannte ich noch gar nicht.
Kennst du auch eine Möglichkeit in PHP Threads zu erzeugen - bei mehreren Prozessen müsste ich die Kommunikation und Synchronisierung ja recht umständlich über Pipes oder Shared Memory bzw. über Semaphores lösen. Gibt es da eine einfachere Möglichkeit (so etwa wie das Multithreading in Java)?
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: exec() system() System-Crash, need help

Post by kase »

Ich kenne mich in diesem Gebiet nicht so aus, normalerweise sollten sich die Childs ja vom Kernel auf die verschiedenen CPUs verteilen.

Diese Eigenschaft von Java, dass sich zB Arrays ( entweder mit Arraylist oder Vector, eins von den beiden macht es, das andere nicht, kA ;) ) automatisch für die verschiedenen Threads synchronisieren kann PHP glaube ich nicht. Du könntest das Array aber wie du selbst schon gesagt hast direkt ins shared memory legen. Zumindest bei dem shm Modul wird das Array fehlerfrei durch ein serialize() automatisch und sicher abgespeichert. Von dem shmop Modul kann ich dir aber nur abraten, machte bei mir nur Probleme.

Vielleicht steht zu deinem Vorhaben aber noch etwas in den Usercomments zu den shared memory oder semaphore Referenzen.
Post Reply