过去几个月,Cron 作业一直在运行,但最近我的服务器负载很高,现在 Cron 作业无法执行我的 php 文件(与之前运行的文件相同)。当我检查 Cron 日志时,我看到了以下内容,我认为这与问题有关:
(CRON) EXEC FAILED (/usr/sbin/sendmail): Resource temporarily unavailable
我需要做什么来解决这个问题?我正在运行 CentOS 7。
编辑:我将此标记为已回答,因为我认为进程挂起导致了此问题。今天,我醒来时发现出现了同样的问题。我想知道是什么原因造成的。
在 cron 日志中,我看到:
Oct 11 05:01:01 run-parts(/etc/cron.hourly)[25431]: starting 0anacron
Oct 11 05:01:01 run-parts(/etc/cron.hourly)[25444]: finished 0anacron
Oct 11 05:01:01 run-parts(/etc/cron.hourly)[25431]: starting 0yum-hourly.cron
Oct 11 05:01:01 run-parts(/etc/cron.hourly)[25450]: finished 0yum-hourly.cron
Oct 11 05:01:01 CROND[25434]: (CRON) EXEC FAILED (/usr/sbin/sendmail): Resource temporarily unavailable
Oct 11 05:01:01 CROND[25429]: (apache) MAIL (mailed 71 bytes of output but got status 0x0001
更新:
我注意到我的邮件日志中有两件事情看起来不对劲。
Oct 8 14:01:39 postfix/local[12886]: 5180C2D098A5: to=<[email protected]>, orig_to=<N>, relay=local, delay=1.1, delays=0.07/0.01/0/1, dsn=5.1.1, status=bounced (unknown user: "n")
Oct 9 04:19:10 postfix/local[12452]: C8F762D012D6: to=<[email protected]>, orig_to=<apache>, relay=local, delay=0.22, delays=0.13/0.02/0/0.07, dsn=5.2.0, status=bounced (cannot update mailbox /var/mail/root for user root. cannot open file: Is a directory)
答案1
(CRON)EXEC 失败(/usr/sbin/sendmail):资源暂时不可用
这不是一个 cron 问题。来自 exec(3):
The execl(), execle(), execlp(), execvp() and execvP() functions may fail and set errno for any of the errors specified for the library functions execve(2) and malloc(3).
来自 execve(2):
[ENOMEM] The new process requires more virtual memory than is allowed by the imposed maximum (getrlimit(2)).
来自 malloc(3):
ENOMEM Memory allocation error.
在大多数 UNIX 系统上,任何失控进程都会消耗足够的资源,导致非失控进程的正常虚拟内存分配也失败。
这不是 cron 问题,而是系统资源、利用率或调整问题。