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 FAILED (/usr/sbin/sendmail):資源暫時無法使用
這不是 cron 問題。來自執行(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 問題,而是系統資源、使用率或調整問題。