【发布时间】:2014-05-03 03:53:45
【问题描述】:
我有一堆脚本需要很长时间才能完成。其中一些可能需要长达 20 分钟。
有一个执行这些 PHP 脚本的 Bash 脚本。当我通过 CLI 以 root 身份调用此 Bash 脚本时,所有 PHP 脚本都可以顺利完成。但是当我通过浏览器调用带有 PHP 的 exec() 函数的 Bash 脚本时,脚本在 7/8 分钟后突然停止而没有抛出任何错误。
通过 Apache/PHP 执行的进程或脚本的运行时间是否有一定的限制?
我试过了:
set_time_limit(0)exec('nohup /path/to/bashscript')exec('/path/to/bashscript | at now')
其他对长时间运行脚本有问题的人推荐了最后两个尝试过的解决方案,但它对我一点帮助都没有。
注意: 执行 PHP 脚本的 Bash 脚本是 CakePHP 的控制台应用程序。我必须通过这个 Bash 脚本执行 PHP 脚本,以利用 CakePHP 的所有功能(模型、shell 方法等)。而且我需要能够通过浏览器调用 Bash 脚本,并让它在后台运行。
服务器是 VPS 并安装了 WHM/cPanel。
【问题讨论】:
标签: php linux bash shell cakephp