Php-фоновый процесс с использованием функции exec - программирование
Подтвердить что ты не робот

Php-фоновый процесс с использованием функции exec

Я много искал, чтобы найти точный ответ, но не нашел.

многие люди упомянули, что мы должны & в конце команды не ждать ответа.
например, для запуска bg.php в фоновом режиме, это было рекомендовано:

exec("/usr/bin/php bg.php &");  

но это не работает для меня. и главный script ждет полного выполнения bg.php.

Я также где-то читал, чтобы написать bg.php вывод в файле журнала, но мой фон script не выводит никакого вывода. Он выполняет некоторый процесс, а затем записывает что-то в базу данных.

Я просто хочу, чтобы мой script запускал bg.php и не дождался его завершения.

пожалуйста, помогите мне, включая правильный код.

4b9b3361

Ответ 1

Вы также должны перенаправить выходные программы, обычно /dev/null

exec($cmd . " > /dev/null &");

Ответ 2

Рассматривали ли вы использование экрана? Вы можете запустить сеанс экрана, который выполняется в отдельном процессе.

screen -d -m -S my_bg_session /usr/bin/php bg.php

Затем вы можете подключиться к нему позже, если он все еще запущен:

screen -r my_bg_session