2

我正在使用该exec()函数来执行相同的外部程序,并且在某些情况下我想停止其中一个程序。但是下面的命令:

taskkill /IM program.exe

会被全部program.exe杀死。所以我认为最好的方法是通过它的 PID 杀死程序进程。

所以,我想办法是每次执行程序时获取PID,然后将其杀死。

我在 Windows XP 上使用 PHP 5.3。

4

2 回答 2

2

Windows 上的 exec 挂起,直到子进程结束。你需要一个孩子的PID,所以我想你想要一个孩子。

试试这个代码,它对我有用。它 nohups notepad.exe 并显示其 PID

    $command = 'notepad.exe';
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->exec("notepad.exe");
print_r ( $oExec->ProcessID ) 

注意 $WshShell->exec 而不是 $WshShell->run 正如一些谷歌搜索资源所声称的那样。

可以帮助别人

于 2012-08-07T23:47:48.087 回答
0

PID 应作为$output数组的第一个元素返回。

exec($command, $output);
$pid = (int)$output[0];
于 2012-08-04T09:59:08.057 回答