Как получить PID из PHP function exec () в Windows?
Я всегда использовал:
$pid = exec("/usr/local/bin/php file.php $args > /dev/null & echo $!");
но я использую виртуальную машину XP для разработки веб-приложения, и я понятия не имею, как получить pid в windows.
я попробовал это на cmd:
C:wampbinphpphp5.2.9-2php.exe "file.php args" > NUL & echo $!
и он получает файл, выполненный, но вывод"$!"
Как я могу получить pid в var $pid? (используя php)
2 ответов
вам придется установить дополнительные расширения, но нашел решение, расположенное в Вики Uniformserver.
обновление
после некоторого поиска вы можете посмотреть на tasklist
который, по совпадению, вы можете использовать с PHP чтобы получить то, что вы после.
Я использую Pstools что позволяет создать процесс в фоновом режиме и захватить его pid:
// use psexec to start in background, pipe stderr to stdout to capture pid
exec("psexec -d $command 2>&1", $output);
// capture pid on the 6th line
preg_match('/ID (\d+)/', $output[5], $matches);
$pid = $matches[1];
Это немного hacky, но он получает работу