Выполнение фонового процесса в PHP на Windows - PullRequest
0 голосов
/ 07 августа 2011

Я переписываю Ответ Марка для Windows, и до сих пор я придумал:

 // Escape character for Windows is: ^ 
 $shellCmd = 'start /B cmd /c ' . escapeshellcmd($cmd) . ' ^>"'.$outputfile. '"'; 
 // note that exec was like 40 times slower than popen & pclose 
 pclose(popen($shellCmd, "r")); 

В Windows есть команда tasklist, но я не знаюкак узнать PID моего процесса.Чтобы быть пунктуальным, я ищу PID процесса, который открывается через popen.

Можете ли вы помочь мне?Спасибо!

Примечание: Я не уверен, что этот код делает с выводом ошибок, но в моем случае это не имеет значения.

1 Ответ

2 голосов
/ 07 августа 2011

http://php.net/manual/en/function.proc-open.php
http://php.net/manual/en/function.pcntl-fork.php
http://www.php.net/proc_get_status

прочитайте обсуждение этих функций, и вы сможете получить больше контроля над фоновыми процессами и получить их PID

пример какэто:

$pcs = popen($shellCmd,"r");
$info = proc_get_status($pcs);
$pid = $info['pid'];
proc_close($pcs);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...