Postfix神秘地停止运行

我的服务器每隔几个月就遇到一次这个问题:

  1. 应用程序对用户不可用
  2. 应用程序日志填充100%磁盘空间,并显示一条错误消息,表示无法连接到本地套接字以发送电子邮件。
  3. 后缀没有运行。
  4. 我没有看到任何指示为什么postfix死亡的日志。

我的服务器是股票Ubuntu 12.04 +稳定的Python应用程序,每天运行24/7 + cron备份。

我确实在dmesg中看到了这个,但是不确定它是否相关(也不确定date是十二月…):

[Sun Dec 1 02:13:10 2013] OOM killed process 561 (named) vm:87916kB, rss:92kB, swap:12680kB [Sun Dec 1 02:13:10 2013] OOM killed process 229 (upstart-udev-br) vm:2784kB, rss:4kB, swap:172kB [Sun Dec 1 02:13:10 2013] OOM killed process 337 (upstart-socket-) vm:2796kB, rss:148kB, swap:68kB [Sun Dec 1 02:13:10 2013] OOM killed process 671 (master) vm:4528kB, rss:152kB, swap:148kB [Sun Dec 1 02:13:10 2013] OOM killed process 679 (qmgr) vm:4688kB, rss:204kB, swap:180kB 

看来主人和qmgr是后缀进程….

 root 16747 1 0 07:22 ? 00:00:00 /usr/lib/postfix/master postfix 16748 16747 0 07:22 ? 00:00:00 pickup -l -t fifo -u -c postfix 16749 16747 0 07:22 ? 00:00:00 qmgr -l -t fifo -u 

我对服务器pipe理不太了解,所以我可以使用一些帮助来确定问题所在。 这是什么内存(RAM)相关? 无可否认,Python应用程序运行在非常高的内存消耗(95%以上)。

Dmesg表示你的内存不足,触发了OOM杀手 。

还有什么date说? 看起来你需要configurationntp 。 date和时间设置错了很可能是什么导致你麻烦。

Petter H在回答中提到,OOM杀手已经杀死了qmgr进程。 不幸的是, qmgr 是Postfix邮件传递的核心 。 当你杀死心脏的时候,你会杀死拥有它的人。

Postfix将qmgr进程保持为持久化进程 。 它不应该死,除非主进程告诉它,也许是重新加载configuration。 如果qmgr死于没有master ,那么postfix就会失去它的心脏。 它可以恢复,然后自杀。