Shell_exec php с nohup - PullRequest
       31

Shell_exec php с nohup

9 голосов
/ 08 февраля 2011

Я думаю, что существует множество похожих сообщений, но я не нашел решения после поиска.

По сути, я пытаюсь запустить два сценария в фоновом режиме. Когда я запускаю их в командной строке, после вызова моего первого скрипта я вижу:

/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 &');

Ответы [ 3 ]

9 голосов
/ 08 февраля 2011

Попробуйте:

$output = shell_exec('/usr/bin/nohup php script.php >/dev/null 2>&1 &');

Или:

exec('/usr/bin/nohup php script.php >/dev/null 2>&1 &');
2 голосов
/ 14 мая 2014
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 ***** ()

2 голосов
/ 28 ноября 2013

Эта работа:

shell_exec('nohup /usr/bin/php path/to/script.php > output.txt &');
...