达到一定限度后重启脚本

时间:2010-11-30 20:47:48

标签: php

没有看到类似这样的问题,所以这里是:

假设我正在运行一个cron脚本,它有可能耗尽内存(64M)或时间(30秒)。有没有办法让脚本检测到这个并重新启动自身,或重定向到自己?

1 个答案:

答案 0 :(得分:1)

我假设这是在某种unix上运行所以如果你用这样的东西包装你的php调用:

#!/bin/sh
# specify the full path and params below.
safe_exec()
{
    if /bin/ps -axww | /usr/bin/grep "$*" | /usr/bin/grep -v grep > /dev/null; then
        # the specified script running, don't start it again
        return
    else
        # run
        $*
    fi
}
safe_exec php /path/to/your/php/script.php

你的定时cron每次都会重新启动脚本,只要它还没有运行。

另一个选择是优化您的脚本。如果它无限循环while(true) {}并且用完ram,它就会做坏事并相应地进行管理。

如果您的时间不够用,则应通过max_execution_time 0为您的CLI脚本设置set_time_limit()