Wywołuję skrypt Python z PHP jako proces w tle, jednak PHP czeka na zakończenie wykonywania skryptu.
To co zrobiłem:
<?php
$script = "backproc.py";
$python ="C:Python27python.exe";
$command = "$python $scriptname $para1 $para2";
shell_exec($command . "2>&1 >out.log &");
?>
Dlaczego czeka na zakończenie procesu w tle?
Odpowiedzi:
1 dla odpowiedzi № 1Musisz przekierować wyjście
Jeśli program zostanie uruchomiony z tą funkcją, waby nadal działał w tle, dane wyjściowe programu muszą zostać przekierowane do pliku lub innego strumienia wyjściowego. Niezastosowanie się do tego spowoduje zawieszenie się PHP do czasu zakończenia wykonywania programu.
Widzieć http://php.net/manual/en/function.exec.php
W systemie UNIX byłoby to np
shell_exec($command . " 2>&1 > out.log");