查找“apache2”的正常运行时间

查找“apache2”的正常运行时间

如何查找 Apache2 的正常运行时间。有许多建议可以使用

httpd fullstatus

但这失败了

-bash: httpd: command not found

两者都没有运行 httpd 命令top,只有一个 apache2 进程。

我也尝试过(但没有成功)

httpd status
apache2 status
apache2 fullstatus
/usr/sbin/apache2 fullstatus
/usr/sbin/apache2 status

考虑到 Apache 在不同平台上安装/配置方式的差异,我可以使用什么命令来可靠地查找 apache2 的正常运行时间?

答案1

ps -eo comm,etime例如,您可以使用:

$ ps -eo comm,etime | grep httpd
httpd            5-01:40:22

这显示了自该过程启动以来经过的时间。我的显示时间为 5 天,1 小时,40 分钟,22 秒。

重启后:

$ ps -eo comm,etime | grep httpd
httpd                 00:07

在优雅重启中,如果 Apache 进程仍在提供连接,则它在完成之前不会被终止,因此如果向较慢的主机下载大量文件,它可能会持续一段时间直至完成。

我确实截取了大部分输出,因为它显示了每个分叉进程,但您将对其运行时间有一个大致的了解。

答案2

我怀疑有很多特定于 apache 版本的方法可以做到这一点,但一种普遍有效的(略微蛮力的)方法如下。

找到打开端口的进程的 PID;它将是第一个启动的进程:

[root@lory ~]# netstat -apn|grep -w 80|grep LISTEN
tcp        0      0 :::80                       :::*                        LISTEN      2903/httpd          

netstat命令需要特权,因此请以 root 身份或在 下运行sudo。在本例中,PID 为 2903。然后查找该进程运行了多长时间:

[root@lory ~]# ps auxww|grep 2903|grep -v grep
apache    2903  0.0  1.0 413316 39972 ?        S    Oct23   0:42 /usr/sbin/httpd

在这种情况下,开始时间是 10 月 23 日,所以我已经运行了几天。您可能会得到一个像 11:15 这样的字段,在这种情况下它是一天中的时间,今天,所以你知道重启成功了。

答案3

如果你有mod_status安装后,您应该能够使用以下命令确定正常运行时间:

apachectl status

这将显示当前时间以及上次重启时间。它可能特定于版本/dstro,但我的 debian 服务器也在输出中显示“服务器正常运行时间”

相关内容