linux und php popen();

thor68

bekommt Übersicht
Hi, Leute!

Als Windows-Mann bin ich leider noch nicht so fit in Sachen Linux (Ubuntu). Habe eine ganze Woche gebraucht, ein System fertig zu konfigurieren. Viel Arbeit auf der Command-Line ohne GUI. Das sollte aber ohne Interface so sein. Nachdem ich nun gefühlte hundert Dinge installiert habe (von LAMP über SSL, Zertifikate, cURL, etc...) hängt es gerade an den Prozessen. Auf meinen Windows-Maschinen nutze ich php popen(); Dort funktioniert das einwandfrei. Aber auf Ubuntu starten sie nicht als Prozesse.

Irgendwie verhält es sich so, als hätte ich sie als exec(); aufgerufen. Das Problem dabei ist, dass jeder Prozess eine Endlosschleife durchläuft. Nähme man exec(); liefe nur eine Endlosschleife, weil die zweite auf die erste warten würde. Wenn die Prozesse aber tatsächlich als solche gestartet würden, klappte das. Auf Windows geht es, auf Ubuntu gerade nicht. Was ich gemacht habe:

PHP:
// Erster Versuch:

pclose(popen(PHP_EXE .' '. PFAD1 ."/v1/SERVER/job1.php 2>&1", "r"));

// Zweiter Versuch:
     
pclose(popen(PHP_EXE .' '. PFAD1 ."/v1/SERVER/job1.php", "r"));

Hat jemand den Fehler schon erkannt oder eine Idee?

Bei Windows steht in popen("start ...

Wenn ich das bei Ubuntu so mit "start" aufrufe, passiert in den Scripten gar nichts.

Mittels exec(); oder auf der Command-Line kann ich meine Jobs starten. Sie laufen fehlerfrei. Über das Skript, womit ich sie aufrufe, starten sie aber nicht parallel. Wenn das eine nach 30 Sekunden abbricht, startet das zweite Skript.
 
Zuletzt bearbeitet:
Oben