Как получить 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)
7
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