我正在使用该exec()
函数来执行相同的外部程序,并且在某些情况下我想停止其中一个程序。但是下面的命令:
taskkill /IM program.exe
会被全部program.exe
杀死。所以我认为最好的方法是通过它的 PID 杀死程序进程。
所以,我想办法是每次执行程序时获取PID,然后将其杀死。
我在 Windows XP 上使用 PHP 5.3。
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 正如一些谷歌搜索资源所声称的那样。
可以帮助别人
PID 应作为$output
数组的第一个元素返回。
exec($command, $output);
$pid = (int)$output[0];