Найти время безотказной работы 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
Какую команду я могу использовать, чтобы надежно определить время безотказной работы apache2, учитывая различия в том, как Apache установлен / настроен на различных платформах?
3 ответа
Ты можешь использовать 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 все еще обслуживает соединение, он не будет прерван, пока не завершится, поэтому, если это большая загрузка на медленный хост, он может задержаться на некоторое время, пока не завершится.
Я вырезал большую часть вывода, так как он показывает каждый разветвленный процесс, но у вас будет общий обзор того, как долго он выполняется.
Я подозреваю, что есть много специфичных для 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
В данном случае время запуска 23 октября, поэтому я бегал пару дней. Вы можете получить поле, например 11:15, в этом случае сегодня время суток, поэтому вы знаете, что перезапуск сработал.
Если у вас установлен mod_status, вы сможете определить время безотказной работы с помощью:
apachectl status
Который покажет текущее время, а также время последнего перезапуска. Возможно, это зависит от версии / dstro, но на моих серверах debian также отображается "Время работы сервера".