Windows Server杀死长时间运行的PHP进程

时间:2013-04-07 18:45:44

标签: php windows command-line

我有一台运行IIS和SQL Server 2012的Windows 2012 Server。

我正在尝试从命令提示符运行PHP脚本。该脚本大约需要1小时才能运行。如果我直接从命令行运行它 - c:\ PHP> php.exe" D:\ Web \ phpScript.php"它运行正常。再次运行需要大约1小时,但它完成得很好。

问题是我需要从另一个PHP页面运行它。所以这个代码 - exec('启动c:\ php \ php.exe" D:\ Web \ phpScript.php"');在PHP中运行脚本。当我从PHP运行它时,它运行良好大约30分钟左右,但由于某种原因,Windows最终会在大约30分钟后终止该进程。

我一直在关注Windows上的任务管理器,与从命令提示符直接运行或使用PHP运行命令时相比,进程运行方式没有任何差别。它们都显示为后台进程,并且在任务管理器中看起来完全相同,但出于某种原因,Windows正在查杀从PHP运行的那个,而不是直接从命令提示符运行。

我甚至尝试在Realtime中运行PHP,也许如果它具有更高的优先级,它就不会被杀死但是没有帮助。

我真的很困惑。

任何帮助都会很棒。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果它与您的PHP配置有关,您可以在脚本开头强制允许一定的执行时间

set_time_limit(60*60*2); // allows 2 hours execution time

然后执行外部文件只需在脚本中使用include('D:\Web\phpScript.php');

http://php.net/manual/en/function.set-time-limit.php

否则,如果它是服务器问题,请打败我。当然,如果在计算机上安装了PHP,则可以在Web浏览器中而不是在命令提示符中运行它。

相关问题