/ / Nemôžem spustiť skript PHP na pozadí s popenom - php, proces na pozadí, popen, pclose

Nemožno spustiť pozadie PHP skript s popen - php, background - process, popen, pclose

Mám kód PHP, ktorý musí bežať na pozadí (bez cronjobov alebo podobných možností), ktorý je úplný, ale nemôžem ho nazvať na pozadí. Skúšam nasledovné:

$files = $_GET["files"];
$id = $_GET["id"];

pclose(popen("start /B D:\server\php\php.exe D:\server\www\whatever\importat\import.php?files=".$files."&id=".$id." 2>nul >nul", "r"));

Ale „nikdy to nebeží. Ak pôjdem a bežím import.php manuálne to funguje bezchybne.

PS: Nemôžem zmeniť import.php.

Pomoc?

odpovede:

0 pre odpoveď č. 1

Mám riešenie:

To, čo robím, je volanie PHP do dávky a jeho spustenie pomocou popenu:

$phpBatch = "progress_import_".$idImport.".bat";
$myPhp = fopen($phpBatch, "w") or die("Error opening file!");
$batchContent .= "@echo OFF n";
$batchContent .= ""D:\path\to\php.exe" D:\path\to\progress_import.php ".$idImport." ".$_SESSION["numberFiles"]." ";
pclose(popen("start /B D:\path\to\".$phpBatch."", "r"));

A vo vnútri progress_import.php používam:

$id = $argv[1];
$numberFiles = $argv[2];

Chytiť parametre.

Dúfam, že niekomu pomáha.