为什么 Apache 无法完全停止或重新启动?每次我都必须手动终止

为什么 Apache 无法完全停止或重新启动?每次我都必须手动终止

我有一台配置好的 EC2 服务器,运行 Ubuntu 11.10,在 Apache2/WSGI 上运行 Django 应用程序。该服务器运行正常,可以毫无问题地停止和重新启动。

当我克隆此实例时,它的所有内容都完全相同。我没有更改任何有意义的内容。但是...它不会完全重启或停止。应用程序运行良好,服务器似乎没有崩溃...直到我尝试重新启动/停止它。

每次我尝试停止时,它至少需要 30 到 45 秒才能停止并显示一条[OK]消息。我可以立即尝试再次停止它,它会做同样的事情。如果我尝试重新启动,它最终会失败并显示“地址已在使用中错误”。然后我手动终止停滞的旧进程/usr/sbin/apache2 -k start以重新启动。然后我仍然有 4 或 5 个<defunct>进程在启动的剩余时间内消耗资源。

我该怎么做才能弄清楚为什么会发生这种情况。这个过程每次都会挂起。我已经为此绞尽脑汁好几天了,但还是不知所措。

=============编辑============

我刚刚尝试将 AMI 克隆到另外 2 个实例,一个是 MICRO,另一个是 SMALL。这非常奇怪:SMALL 实例运行正常。MICRO 实例有相同的重启问题。为了验证这一点,我再次做了同样的事情(克隆到另一个 SMALL 和另一个 MICRO)。同样的事情......

答案1

各种现有实例类型亚马逊 EC2当前实例类型是否具有Amazon EC2 实例存储(也称为临时存储) 是否可用,以及是否默认连接、格式化和安装。具体来说,后者仅适用于 m1.small 和 c1.medium 实例,而 t1.micro 实例完全缺乏这种存储 - 请参阅实例类型上可用的实例存储为了每种实例类型可用的实例存储卷的数量和大小实例存储设备名称有关映射的更多详细信息:

实例存储卷必须先安装在设备上才能使用。在 Linux 实例上,根据实例类型,某些实例存储默认由 Amazon 构建映像格式化和安装。Windows 实例使用内置工具 EC2Config 服务来格式化和安装附加到实例的所有实例存储。

因此,根据您的设置,可能存在假设存储在下可用的操作系统 / 服务配置工件/mnt,但实际上它并不在缺少该存储的此实例的克隆上,例如:

  • 典型的服务锁文件可以依次表现出相关行为,即,无法创建锁文件可能不被视为致命错误,因此服务可以正常启动,但是,重启/停止逻辑通常需要具有进程 ID(PID)的锁文件存在,如果没有它,显然会失败。

答案2

也许尝试用PidFile 指令

如果它使用非标准 pid 文件,则查看创建的默认日志文件的权限。

相关内容