Я думаю, что есть много похожих сообщений, но я еще не нашел решения после поиска.
В принципе, я пытаюсь запустить два сценария в фоновом режиме. Когда я запускаю их в командной строке, я вижу после вызова моего первого скрипта:
/usr/bin/nohup php script.php > nohupoutput.log & echo $!
Я пробовал ...script.php > /dev/null &
с тем же результатом. Я получил:
/usr/bin/nohup: ignoring input and redirecting stderr to stdout
который я игнорирую и запускаю второй. Я заметил, что он висел там, и нажатие Enter вернуло меня к machine:~folder>
/usr/bin/nohup php script2.php > nohupoutput.log & echo $!
Оба скрипта работают. Я попытался затем преобразовать это в команду shell_exec и ничего не работает. Я подозреваю, что ignoring input
бита вызывает трудности, но я не уверен. Несмотря на это, следующее не работает. Он просто зависает в браузере:
$output = shell_exec('/usr/bin/nohup php script.php > /dev/null &'); $output = shell_exec('/usr/bin/nohup php script2.php > /dev/null &');
Пытаться:
$output = shell_exec('/usr/bin/nohup php script.php >/dev/null 2>&1 &');
Или:
exec('/usr/bin/nohup php script.php >/dev/null 2>&1 &');
Этот шут работает:
shell_exec('nohup /usr/bin/php path/to/script.php > output.txt &');
this would help you dude.. <?php function execInBackground($cmd) { if (substr(php_uname(), 0, 7) == "Windows"){ pclose(popen("start /B ". $cmd, "r")); } else { exec($cmd . " > /dev/null &"); } } //take note: to get your PHP_PATH, try looking at your phpinfo :) echo execInBackground("/usr/local/php53/bin/php 'example2.php'"); ?>
это моя рабочая страница примера: () **** http://affiliateproductpromotions.net/pop.php ***** ()