Как получить 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, но он получает работу