这是我用来检查进程是否在windows下运行的代码,在本例中为calc.exe
我正在尝试启动calc.exe,如果这个没有弄清楚任务列表。
如果没有启动calc.exe,则在运行php脚本时打开,但页面保持循环,直到我关闭calc.exe 。
我哪里错了?
非常感谢帮助。
// START SHOW TASKLIST
// Get Tasklist
exec("tasklist 2>NUL", $task_list);
//print_r($task_list);
echo '<pre>'; print_r($task_list); echo '</pre>';
// END SHOW TASKLIST
// Service running
$kill_pattern = '~(calc)\.exe~i';
// Create array
$task_list = array();
exec("tasklist 2>NUL", $task_list);
foreach ($task_list AS $task_line) {
if (preg_match($kill_pattern, $task_line, $out)) {
echo "=> Detected: ".$out[1]."\n !\n";
$is_running = '1';
break;
}
}
if ($is_running == '1') {
echo 'Nothing to do';
exit;
} else {
// open calc.exe
exec("calc.exe");
exit;
}
答案 0 :(得分:1)
请使用此代码以避免脚本挂断
更改
exec(calc.exe);
使用
pclose(popen('start /B cmd /C "calc.exe >NUL 2>NUL"', 'r'));