У меня есть PHP-программа, которая запускает процесс в фоновом режиме через exec () (вывод процесса отправляется в / dev / null). Я тогда использую exec("echo $!", $processes[0])
потому что я хочу сохранить идентификатор процесса, чтобы я мог прекратить его позже. Тем не менее, результат $processes[0]
это пустой массив.
Почему идентификатор процесса не сохраняется? Обратите внимание, что идентификатор процесса выводится правильно, если я выполняю фоновый процесс, а затем запускаю echo $!
из терминала. Дополнительным примечанием является то, что я использую Raspberry Pi на основе Linux.
Чтобы записать идентификатор процесса, вы должны установить его в переменную. Например, чтобы запустить другой PHP-скрипт в фоновом режиме:
$pid = exec("php mysbackgroundscript.php >/dev/null 2>&1 & echo $!");
Переменная $ pid должна содержать PID.
Других решений пока нет …