没有看到类似这样的问题,所以这里是:
假设我正在运行一个cron脚本,它有可能耗尽内存(64M)或时间(30秒)。有没有办法让脚本检测到这个并重新启动自身,或重定向到自己?
答案 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()
。