Почему этот процесс не работает в фоновом режиме? - PullRequest
1 голос
/ 06 мая 2011

Итак, я хочу запустить скрипт, который создаст около 15 тыс. Pdf файлов, и это нужно сделать из оболочки из-за php max_timeout ...

Сервер: Ubuntu 10.04.1 PHP: 5.3.2-1ubuntu4.5

Итак, что я сейчас пробовал:

function run_in_background($Command){
    $ps = shell_exec("nohup php5 $Command > /dev/null 2> /dev/null & echo $!");
    return $ps;
}

$ok = run_in_background('/var/www/custom/web/public/make_pdf.php');

if(!empty($ok))
    var_dump($ok);
else
    exit('Fail');

И после этого я иду в консоль ssh и делаю ps $ps и в ответ получаю заголовки только без информации - ведьмаозначает, что процесс не запущен ...

Как я могу это сделать, чтобы он работал?

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Попробуйте без echo $! или заканчивая &.Если вы хотите запустить 2 процесса «inline», используйте && вместо простого &.

Пример: nohup php5 $Command > /dev/null 2> /dev/null && echo $! &

Чтобы проверить, завершился ли процесс ошибкой, выполните следующее:

nohup php5 $Command > command_stout.txt 2> command_stderr.txt && echo $! &

1 голос
/ 06 мая 2011

Попробуйте ввести команду & после:

$ps = shell_exec("nohup php5 $Command & > /dev/null 2> /dev/null & echo $!");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...