2011-05-23 3 views
1

На данный момент у меня есть строка кода, как это:PHP запустить PHP скрипт и продолжить

system("/usr/bin/php myphpscript.php --param=".val); 

Есть ли способ сделать PHP не ждать для сценария, чтобы закончить - и просто двигаться дальше, а не ?

Это электронная почта, перемещающая петлю, и myphpscript.php обрабатывает письма. И я не wan't ждать, когда myphpscript.php закончится каждый раз - просто запустите его и перейдите!

UPDATE РЕШЕНИЕ

Найдено ответ здесь:

http://www.php.net/manual/en/function.exec.php#101506

passthru("/usr/bin/php myphpscript.php --param=".val." >> /dev/null 2>&1 &"); 

Exp:

/DEV/нуль

Мне нужно было написать что-то еще, что STDOUT, иначе PHP будет висеть до завершения скрипта. Поэтому я пишу вместо/dev/null.

2>&1 

Перенаправление ошибок в STDOUT

& 

"Запуск в фоновом режиме", как указано в этой теме.

Удачного дня!

  • гнездо

  • гнездо

ответ

0

Это должно работать

exec("/usr/bin/php myphpscript.php --param=".val . '&'); 
+0

Это решение + nohup дает мне «nohup: перенаправление stderr в stdout» + мой индексный вывод. Без nohup просто дай мне индекс. (В моем терминале). – jack

0

Бросив команду фона до конца должен ле сценарий продолжения:

системы («/ USR/б in/php myphpscript.php --param = ". val. «&»);

Я бы также добавить поЬир на всякий случай, так как я думаю, что это суб-процесс может убить, когда сценарий родительского PHP заканчивает:

системы ("поЬир/USR/бен/PHP myphpscript.php - -param = ". val." & ");

+0

Я добавил ваши изменения, но если я запустил скрипт через терминал, скрипт все еще ждет выполнения myphpscript.php. И тогда мое соединение IMAP будет тайм-аут. Есть ли способ заставить основной скрипт двигаться после запуска индекса? – jack

Смежные вопросы