Я хотел бы запустить php-скрипт в фоновом режиме, так как требуется много времени, и я не хочу ждать его.Как запустить php-процесс в фоновом режиме?
Этот вопрос относится к:
php execute a background process
Я попытался сделать эту работу на моем Linux CentOS машине, но, к сожалению, кажется, не работает.
Это мой код:
$cmd = 'php '.realpath($_SERVER["DOCUMENT_ROOT"]).'/test/sample.php';
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
exec(sprintf("$s > $s 2>&1 & echo $1", $cmd, $outputfile),$pidArr);
sleep(2);
print_r($outputfile);
print_r($pidfile);
Я включил сон (2), чтобы убедиться, что сценарий sample.php закончен. Sample.php содержит только echo 'Hello world'; Я попробовал оба варианта exec, но никто из них не работал. Вышеприведенный скрипт не показывает никакого вывода.
Я попытался запустить тот же $ cmd в командной строке linux и показал мне результат из скрипта sample.php.
Я хотел бы сделать этот запуск первым, но, кроме того, я хотел бы отправить переменные в скрипт sample.php.
Ваша помощь очень ценится.
Токен/cron: оставляя токен, который может быть строкой в файле или записи в базе данных или что-то подобное, которое ищет длинное задание cron и контролирует его поведение, часто является хорошей альтернативой бегущему фону процессов из браузера. Администратор лучше контролирует, как часто выполняется задание cron, какие разрешения он имеет и что он делает. – Paul
Спасибо, но я хочу запустить его сразу, когда пользователь посещает этот php-скрипт. – BastiaanWW