Linux exec () не хранит идентификатор процесса

У меня есть PHP-программа, которая запускает процесс в фоновом режиме через exec () (вывод процесса отправляется в / dev / null). Я тогда использую exec("echo $!", $processes[0]) потому что я хочу сохранить идентификатор процесса, чтобы я мог прекратить его позже. Тем не менее, результат $processes[0] это пустой массив.

Почему идентификатор процесса не сохраняется? Обратите внимание, что идентификатор процесса выводится правильно, если я выполняю фоновый процесс, а затем запускаю echo $! из терминала. Дополнительным примечанием является то, что я использую Raspberry Pi на основе Linux.

0

Решение

Чтобы записать идентификатор процесса, вы должны установить его в переменную. Например, чтобы запустить другой PHP-скрипт в фоновом режиме:

$pid = exec("php mysbackgroundscript.php >/dev/null 2>&1 & echo $!");

Переменная $ pid должна содержать PID.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]