我在 burst.net 上买了一个 VPS,非常便宜,但这并不重要。
它的奇怪行为是,使用 lighthttpd 的 spawn-cgi 启动的 php-cgi 进程每隔几分钟就会死一次。但是,其他进程都很好,甚至包括一个 java 进程,而且我确定没有“内存不足”问题,所以它不会被 OOM 杀手杀死。
我使用 strace 来跟踪该进程,发现它被 SIGKILL 杀死了,因此磁盘上没有留下任何日志,只是突然死亡。
有什么办法可以找出哪个进程/事物向可怜的 php 进程发送了 SIGKILL?
向供应商提交了一张票,但他们说他们不会管。
strace -p 7176
Process 7176 attached - interrupt to quit
wait4(-1, <unfinished ...>
+++ killed by SIGKILL +++
答案1
最后我使用 php-fpm 重新编译了 php,看起来好多了,也稳定多了。不管怎样,openvz 并不那么好。但是你付出的钱那么少,还能期待什么呢?
答案2
只有以与目标相同的用户或 root 身份运行的进程才能发送信号。您可以使用 systemtap 来查找罪魁祸首。请参阅:SystemTap SigMon
答案3
在询问了 burst.net 支持后,他们对服务器做了一些更改。Cron 现在正在持续运行。
看起来 crond 被主机系统杀死了。