過去数か月間、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
アップデート:
メール ログに 2 つの異常があることに気付きました。
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 の問題ではなく、システム リソース、使用率、またはチューニングの問題です。