我怎样才能findApache2的正常运行时间。 有许多build议在那里使用
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在各种平台上的安装/configuration方式的差异,我可以使用什么命令可靠地查找apache2的正常运行时间?
您可以使用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进程仍在服务一个连接,它将不会被杀死,直到完成,所以如果它是一个很慢的主机下载,它可能会持续一段时间,直到它完成。
我做了大部分的输出,因为它显示了每个分支进程,但是您将对其运行的时间有一个总体的了解。
如果你已经安装了mod_status,你应该可以通过以下方式来确定正常运行时间:
apachectl status
这将显示当前时间以及上次重新启动时间。 它可能是版本/特定的,但我的debian服务器在输出中也显示“服务器正常运行时间”
我怀疑有很多特定于apache版本的方法可以做到这一点,但是一个普遍有效(稍微暴力)的方式如下。
find打开端口的进程的PID; 它将是第一个开始的:
[root@lory ~]# netstat -apn|grep -w 80|grep LISTEN tcp 0 0 :::80 :::* LISTEN 2903/httpd
netstat命令需要特权,所以可以以root身份或在sudo下运行。 在这种情况下,PID是2903.然后find该进程已经运行了多长时间:
[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的字段,在这种情况下,今天是一天的时间,所以你知道重启的工作。