Heartbleedの影響で、OpenSSLをアップデートして対応しましたが、その後cronが動いていないことが判明し、syslog(/var/log/messages)を確認したところ、以下のようなセグメンテーションフォルトが発生していました *1。
[plain] Apr 8 00:00:02 localhost kernel: [44444444.55555] crond[33008]: segfault at 876 ip 00008g6c67fb18b6 sp 00008fffdf5736c0 error 4 in libpthread-2.17.so[8f6b67e6c000+17000] [/plain]
詳しいことはよくわかっていませんが、OpenSSLをyumでアップデートした際に、
- glibc-common-2.17-36.81.amzn1.x86_64
- glibc-2.17-36.81.amzn1.x86_64
- audit-libs-2.3.2-3.19.amzn1.x86_64
- glibc-headers-2.17-36.81.amzn1.x86_64
これらもアップデートされたので、上手く読み込めていなかったのではないかと思います(詳しい人いたら教えてください)。
crondを再起動したら、直りました。
$ sudo service crond restart
なお、この現象は、AWSのEC2のみで発生し、さくらなどのVPSでは発生していませんでした。よくわかりません。
アップデートで満足してしまい、ログ監視を怠っていたので、Zabbix等で定期的に監視した方がいいですね。反省。
*1:エラーの一部を変更しています