我怎样才能找到 Apache2 的正常运行时间。有很多建议可以使用
httpd fullstatus
Run Code Online (Sandbox Code Playgroud)
但这失败了
-bash: httpd: command not found
Run Code Online (Sandbox Code Playgroud)
top两者都没有运行 httpd 命令,只有一个 apache2 进程。
我也试过(没有任何运气)
httpd status
apache2 status
apache2 fullstatus
/usr/sbin/apache2 fullstatus
/usr/sbin/apache2 status
Run Code Online (Sandbox Code Playgroud)
鉴于 Apache 在各种平台上的安装/配置方式不同,我可以使用什么命令来可靠地找到 apache2 的正常运行时间?
Reg*_*gan 18
ps -eo comm,etime例如,您可以使用:
$ ps -eo comm,etime | grep httpd
httpd 5-01:40:22
Run Code Online (Sandbox Code Playgroud)
这显示自进程开始以来经过的时间。我的显示 5 天 1 小时 40 分 22 秒。
并在重新启动后:
$ ps -eo comm,etime | grep httpd
httpd 00:07
Run Code Online (Sandbox Code Playgroud)
在正常重启中,如果一个 apache 进程仍在为一个连接提供服务,它在完成之前不会被终止,所以如果它是对慢速主机的大量下载,它可能会停留一段时间直到它完成。
我确实剪掉了大部分输出,因为它显示了每个分叉的进程,但是您将大致了解它运行了多长时间。
我怀疑有很多特定于 apache 版本的方法可以做到这一点,但一种普遍有效(并且稍微有点暴力)的方法如下。
找到打开端口的进程的PID;这将是第一个开始:
[root@lory ~]# netstat -apn|grep -w 80|grep LISTEN
tcp 0 0 :::80 :::* LISTEN 2903/httpd
Run Code Online (Sandbox Code Playgroud)
该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
Run Code Online (Sandbox Code Playgroud)
在这种情况下,开始时间是 10 月 23 日,所以我已经运行了几天。您可能会看到像 11:15 这样的字段,在这种情况下,这是一天中的某个时间,即今天,因此您知道重启成功了。
如果您安装了mod_status,您应该能够通过以下方式确定正常运行时间:
apachectl status
Run Code Online (Sandbox Code Playgroud)
这将显示当前时间以及上次重启时间。它可能是版本/dstro 特定的,但我的 debian 服务器也在输出中显示“服务器正常运行时间”
| 归档时间: |
|
| 查看次数: |
13464 次 |
| 最近记录: |