如何判断Apache是​​否正在重启?

尝试重新启动Apache,并不能告诉它是否重新启动 – 是否有重新启动的日志,或者如果我input命令行重新启动,我应该期待一个响应(错误信息,确认,状态等)

从来没有做过,不知道发生了什么事。

这正是我正在打字,没有$ /#之前…

命令input:

sudo apache2ctl restart 

– 要么 –

 apache2ctl restart 

CONTEXT:从根目录执行的命令,意思是…“cd /”

结果:似乎没有任何事情发生。

根据您的计算机上Apache和syslog的configuration情况,可能会有所不同,但是在Debian或Ubuntu Apache 2的安装过程中,您可以在/var/log/apache2/error.logfind日志。 如果重新启动,您应该在日志中清楚地看到它。

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

最后一件事,如果你试图找出你刚刚运行的命令是成功还是失败了,那么试试echo $? 。 它会打印最后一个命令的返回码。 99%的时间0是你在那里找的。

apache2ctl在失败时应该返回一个非零的状态码。 你可以通过发出你的启动命令来通知失败:

 apache2ctl start || echo 'apache2ctl failed' 

如果apache2ctl认为它成功,你应该看不到输出。

如果你喜欢更具体的东西(遵循“信任,但是validation”的格言),你可以检查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)上监听传入的连接。

Mine在我的apache2ctl restart时在error.log中创build了几个[notice]条目,以“[notice] SIGHUP收到。尝试重新启动”开头,以“Apache(各种模块列表)结束 – 恢复正常操作”

有几个地方你可以看看,如果Apache重启。 第一个系统日志在/ var / log目录下。 第二个Apachelogin到/ var / log / apache2目录