我如何知道 Apache 是否正在重新启动?

我如何知道 Apache 是否正在重新启动?

尝试重新启动 Apache,但无法判断它是否正在重新启动——是否有重新启动的日志,或者如果我输入命令行来重新启动,我是否应该期待响应(错误消息、确认、状态等)?

之前从来没有做过并且不确定发生了什么。

这正是我所输入的内容,前面没有 $/#......

命令输入:

sudo apache2ctl restart

- 或者 -

apache2ctl restart

语境:从根目录执行的命令,意思是......“cd /”

结果:看上去什么也没有发生。

答案1

根据您机器上 Apache 和 syslog 的配置方式,可能会有所不同,但是使用现有的 Debian 或 Ubuntu Apache 2 安装,您会在 中找到日志/var/log/apache2/error.log。如果它重新启动,您应该在日志中清楚地看到它。

此外,检查的输出ps,特别是开始时间,您应该能够判断它是否已重新启动。

最后一件事,如果你想知道你刚刚运行的命令是成功还是失败,请尝试echo $?。它将打印最后一条命令的返回码。99% 的情况下,你要找的就是 0。

答案2

apache2ctl失败时应返回非零状态代码。您可以通过发出如下启动命令来获悉失败情况:

apache2ctl start || echo 'apache2ctl failed'

apache2ctl如果认为成功了,那么应该看不到任何输出。

如果你喜欢更具体的东西(遵循“信任,但要核实”的格言),你可以检查 apache 是否真的启动并监听连接netstat,例如

netstat -anp | egrep -i 'http|apache'

如果你看到类似这样的线条,那么你就成功了:

tcp6   0   0  :::80   :::*  LISTEN  1506/apache2
tcp6   0   0  :::443  :::*  LISTEN  1506/apache2

或者,如果您没有运行 IPv6,您将看到类似这样的内容:

tcp   0   0  0.0.0.0:80   0.0.0.0:*  LISTEN  2341/apache2
tcp   0   0  0.0.0.0:443  0.0.0.0:*  LISTEN  2341/apache2

无论哪种情况,关键点是 apache2 正在侦听众所周知的 www 端口(80,以及可选的 443)上的传入连接。

答案3

当我 时,我的 error.log 中会创建几个 [notice] 条目,apache2ctl restart以“[notice] 收到 SIGHUP。正在尝试重新启动”开头,以“Apache(各种模块列表)已配置 - 正在恢复正常操作”结尾

答案4

Apache 重启后,你可以查看几个地方。第一个是 /var/log 目录中的 syslog。第二个是 /var/log/apache2 目录中的 Apache 日志

相关内容