避免cron发送警告电子邮件

时间:2015-12-18 20:00:41

标签: php

我有一个cron正在运行,我收到了一些警告电子邮件。如何阻止这些警告电子邮件?

我在电子邮件中收到这些警告。 PHP警告:session_start():无法发送会话cookie - 已发送的标头

有人可以帮我解决此警告或帮助我停止发送这些警告电子邮件。

2 个答案:

答案 0 :(得分:2)

Cron非常愚蠢,将进程打印到STDOUT或STDERR的所有内容发送到MAILTO环境变量中配置的电子邮件地址(如果没有设置,则发送给拥有cron的用户)。有几种方法可以解决这个问题:

  1. 正确方法:修复您的PHP警告。请注意,实际上没有充分的理由在cron中调用session_start。这比将整个输出简化为遗忘(/dev/null)更可取,因为现在你可以使用cron的邮件功能进行实际的错误报告:只需让你的cron在成功运行时保持安静,并将它打印到stdout或stderr当发生实际错误时。
  2. 简单方法:将输出重定向到日志文件(如果您不关心输出,则为/dev/null):

    * * * * * user ./your/command.php >/path/to/logfile 2>&1
    

答案 1 :(得分:1)

您可以将标准错误重定向到标准输出,然后将其全部重定向到/ dev / null,这样您就不会从cron作业中收到任何通知。

# sample crontab
0 * * * * /usr/bin/php /path/to/phpfile.php >/dev/null 2>&1

上面说明所有输出转到/ dev / null,包括STDERR描述符上的任何内容,这是PHP错误出现的地方。