我使用exec()
函数执行相同的外部程序,我想在某些情况下停止其中一个。但是以下命令:
taskkill /IM program.exe
将导致所有program.exe
被杀。所以我认为最好的方法是通过PID来杀死程序进程。
所以,我认为每次执行程序时都会获取PID,然后将其删除。
我在Windows XP上使用PHP 5.3。
答案 0 :(得分:1)
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->运行一些googled ressources声明。
可以帮助其他人
答案 1 :(得分:0)
应该将PID作为$output
数组的第一个元素返回。
exec($command, $output);
$pid = (int)$output[0];