php - httpd 工作成为僵尸进程
问题描述
我正在通过 apache + mod_php 在 docker 容器中运行 php 服务。由于某种原因,我迟早会在反向代理上得到“服务不可用”。检查容器时,我总是发现所有 httpd 工作人员都变成了僵尸,不再被主进程收割。我认为这是由于 docker 容器中的僵尸收割问题,并试图通过将 tini 添加为 pid 1 来解决它。不幸的是,它没有解决问题,我想是因为 httpd 主进程仍在运行,所以工作人员实际上不是孤儿被 pid 1 收割。此时我不知道如何解决这个问题,因此寻求您的帮助。
有谁知道如何调试这种问题?
下面是在容器内运行的“top”命令的输出。我使用普通的 alpine 作为基本映像,并通过“apk”安装了 php7。
9 1 root S 169m 1% 3 0% /usr/sbin/httpd -D FOREGROUND
5493 0 root S 1592 0% 1 0% sh
5501 5493 root R 1524 0% 2 0% top
1 0 root S 760 0% 0 0% /sbin/tini -- /usr/sbin/httpd -D F
5484 9 apache Z 0 0% 3 0% [httpd]
5492 9 apache Z 0 0% 0 0% [httpd]
5485 9 apache Z 0 0% 0 0% [httpd]
5490 9 apache Z 0 0% 3 0% [httpd]
5486 9 apache Z 0 0% 0 0% [httpd]
5487 9 apache Z 0 0% 1 0% [httpd]
5483 9 apache Z 0 0% 3 0% [httpd]
5482 9 apache Z 0 0% 1 0% [httpd]
5489 9 apache Z 0 0% 1 0% [httpd]
5491 9 apache Z 0 0% 3 0% [httpd]
5488 9 apache Z 0 0% 0 0% [httpd]
解决方案
推荐阅读
- python - 从样式表解析属性值以绘制自定义小部件
- javascript - JavaScript:警报 XHR 响应?
- javascript - 每个按钮的 iframe 全屏
- django - 这些代码行对我的 django 模型有什么作用?
- javascript - 修复 React Native CheckBox
- c++ - 如果可能的话,我如何使用可变参数模板来制作一个并排打印多个任何类型的 std::vectors 的函数?
- django - 模板标签django中的字典
- javascript - p5js 中的这个 2D noise() 椭圆有更好的解决方案吗?
- postgresql - 如何将来自父母的数据添加到子表 Postgres?
- python - (多问) Python 脚本对比 MsSQL 工作台 错误代码:2013。在查询期间丢失与 MySQL 服务器的连接;和唯一索引