php запустить php скрипт и продолжить - PullRequest
1 голос
/ 23 мая 2011

На данный момент у меня есть строка кода, подобная этой:

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

Есть ли способ заставить php не ждать завершения сценария - и просто двигаться дальше вместо этого?

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

РЕШЕНИЕ ОБНОВЛЕНИЯ

Нашел ответ здесь:

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

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

Эксп:

/ dev / null

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

2>&1

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

&

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

ЕстьДобрый день!

  • Джек

  • Джек

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

Бросив фоновую команду до конца, нужно продолжить выполнение сценария:

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

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

system ("nohup / usr / bin / php myphpscript.php --param =". Val. "&");

0 голосов
/ 23 мая 2011

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

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