Rad*_*mko 42 php linux command-line-interface
我知道通常使用PHP CLI是因为没有时间限制和主要因为它没有使用Apache线程/进程.
但有没有办法如何明确设置一些脚本的max_execution_time,我不想拥有"无限时间"的自由,只是想保持这些脚本的控制?
如果你认为这个问题可以在superuser.com上得到更好的解答并且有权移动它,那就去做吧.:)
编辑:我一直在谷歌搜索,找到了正确的参数:
php -d max_execution_time=5 script.php
Run Code Online (Sandbox Code Playgroud)
Jon*_*Jon 36
的文档说,在命令行模式下运行时,默认为0(无限制).它并没有说你不能覆盖它:
set_time_limit(10); // this way
ini_set('max_execution_time', 10); // or this way
Run Code Online (Sandbox Code Playgroud)
编辑:我自己尝试过,它按预期工作.
F:\dev\www>c:php -f index.php
PHP Fatal error: Maximum execution time of 2 seconds exceeded in F:\dev\www\index.php on line 3
Fatal error: Maximum execution time of 2 seconds exceeded in F:\dev\www\index.php on line 3
Run Code Online (Sandbox Code Playgroud)
sti*_*vlo 22
set_time_limit()在CLI脚本中有效.
<?php
set_time_limit(1); //in seconds
for (;;);
?>
Run Code Online (Sandbox Code Playgroud)
返回一秒后出现以下错误消息:
PHP Fatal error: Maximum execution time of 1 second exceeded in \
/home/stivlo/test.php on line 4
Run Code Online (Sandbox Code Playgroud)
最初我尝试使用sleep()并且没有应用时间限制.正如@Jon建议的那样,使用真实的计算,就像无限循环一样.
我在sleep() PHP页面中找到了这个有趣的注释:
注意:set_time_limit()函数和配置指令max_execution_time仅影响脚本本身的执行时间.在确定脚本运行的最长时间时,不会包括在执行脚本之外发生的任何活动,例如使用system()的系统调用,sleep()函数,数据库查询等.