Как получить PID из PHP-функции exec() в Windows?


Я всегда использовал:

$pid = exec("/usr/local/bin/php file.php $args > /dev/null & echo \$!");

Но я использую виртуальную машину XP для разработки веб-приложения, и я понятия не имею, как получить pid в Windows.

Я попробовал это на cmd:

C:\\wamp\\bin\\php\\php5.2.9-2\\php.exe "file.php args" > NUL & echo $!

И он запускает файл, но выводит "$!"

Как я могу ввести pid в var $pid? (с использованием php)

Author: jarkam, 2010-09-09

2 answers

Вам придется установить дополнительное расширение , но вы нашли решение, расположенное в Вики Uniformserver.

ОБНОВЛЕНИЕ

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

 0
Author: Brad F Jacobs, 2010-09-09 19:14:29

Я использую 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];

Это немного банально, но это делает свою работу

 8
Author: SeanDowney, 2011-07-12 17:32:37