cron的工作似乎已经过时了

时间:2009-06-04 14:35:12

标签: php unix timeout cron

在root的crontab中设置以下cronjob :( centos 5.x)

2 * * * * /usr/bin/curl --basic --user 'user:pass' http://localhost/cron/do_some_action > /var/www/app/cronlog.log

调用实际命令按预期工作,但是当cronjob运行时,它总是超时。我使用了set_time_limit()和相关的php.ini设置来确保它不是PHP死的,而/ var / log / cron对我来说是正常的:

  

Jun 4 10:02:01 foobar crond [12138] :( root)CMD([snip])

关于为什么cronjob会死的任何想法?

4 个答案:

答案 0 :(得分:1)

添加用户

02 * * * * root / usr / bin / curl --basic --user'user:pass'http://localhost/not/porn> /var/www/app/filethatrootcanwriteto.log

答案 1 :(得分:1)

我想出来了 - 卷曲的进度统计数据:

(100 65622    0 65622    0     0   1039      0 --:--:--  0:01:03 --:--:--  1927)

由于某种原因被写入stderr - 在命令末尾添加2>& 1修复它:

2 * * * * /usr/bin/curl --basic --user 'user:pass' http://localhost/cron/do_some_action > /var/www/app/cronlog.log 2>&1

感谢大家的所有见解!

答案 2 :(得分:0)

可以有2个php.ini文件,一个用于apache,另一个用于CLI。

找到php.ini 应该找到两者,我建议你先检查一下。

答案 3 :(得分:0)

使用ob_start()和ob_end_flush()缓冲PHP输出也可以避免这种情况,以防止curl过早地返回状态。

相关问题