在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会死的任何想法?
答案 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过早地返回状态。