apache2和mysql在内存不足失败后自动启动

我有一个服务器,我有内存不足的问题。 根据消息日志,这导致apache和mysql被杀死。

kernel: [29992047.769005] Out of memory: Kill process 13541 (httpd) score 10 or sacrifice child kernel: [29992047.769005] Killed process 13541 (httpd) total-vm:70432kB, anon-rss:11016kB, file-rss:168kB 

奇怪(虽然是件好事),它自动启动,我不知道如何。 我仍然需要调查内存不足的错误,但是我对自动启动的方式一无所知。

我已经在自己的Amazon EC2小实例上设置了apache和mysql。 这个或其他自动脚本除了通常的chkconfig安装程序启动时没有任何cron作业。

大多数人对此好奇,但知道何时以及如何再次启动apache和mysql将会很有用。 也可能对我的其他服务有用。

一些线索给你:

  • 你在运行monit吗?
  • supervisordautorestart打开?
  • 或Nagios与事件处理程序 ?

您也可以使用auditd在Apache二进制文件上设置监视:

 auditctl -w /usr/sbin/httpd -px -k apache-binary-file 

然后找出谁叫它:

 # ausearch -f /usr/sbin/httpd ---- time->Tue Mar 19 05:23:22 2013 type=PATH msg=audit(1363674202.844:241): item=1 name=(null) inode=3237 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:ld_so_t:s0 type=PATH msg=audit(1363674202.844:241): item=0 name="/usr/sbin/httpd" inode=14695 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:httpd_exec_t:s0 type=CWD msg=audit(1363674202.844:241): cwd="/root" type=EXECVE msg=audit(1363674202.844:241): argc=1 a0="/usr/sbin/httpd" type=SYSCALL msg=audit(1363674202.844:241): arch=40000003 syscall=11 success=yes exit=0 a0=9ff7c38 a1=9ff7c00 a2=9ff6bd8 a3=9ff7c00 items=2 ppid=2593 pid=2594 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=2 comm="httpd" exe="/usr/sbin/httpd" subj=unconfined_u:system_r:httpd_t:s0 key="apache-binary-file"