дочерние процессы отделены от основного процесса bash shell php - PullRequest
1 голос
/ 15 февраля 2012

Я звоню сценарий на продажу из моего php-кода с

foreach ($some_array) {
     shell_exec(nohup $code); 
}

как выше

Я хочу, чтобы все shell_exec вызовы работали независимо от почтового процесса, который представляет собой выполнение php, которое мы называем shell script

Но это не работает, так как я ожидал, что все shell_executions начнутся сразу после завершения предыдущего

Итак, как я могу сделать эти shell_exec вызовы независимым дочерним процессом, чтобы они не ожидали завершения друг друга

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 15 февраля 2012

Добавьте '&' в конец команды, которую вы хотите выполнить, чтобы она работала в фоновом режиме.

0 голосов
/ 15 февраля 2012

Для последовательности команд заключите их в круглые скобки, затем добавьте символ &, но обязательно перенаправьте куда-нибудь stdout, stderr, иначе ваш скрипт будет зависать в ожидании, например ::

<?php

exec('( sleep 10; echo "finished" | mail ian@example.com ) &> /dev/null &');

?>

См. http://us.php.net/manual/en/function.exec.php

0 голосов
/ 15 февраля 2012

Отправь их на задний план

shell_exec("nohup somecommand &");
                              ^---run job in background
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...