Работает ли Tomcat?
Заинтересованы знать, как обычно люди проверяют, работает ли Tomcat в среде Unix.
Я либо проверю, что процесс выполняется с помощью
ps -ef | grep java
ps -ef | grep logging
или я проверить, что номер порта активен
netstat -a | grep 8080
Есть ли лучший способ проверить, что Tomcat запущен? Вышеприведенное, похоже, должно быть "взломанным" способом проверки работы Tomcat.
Ответы
Ответ 1
Почему grep ps
, когда pid был записан в файл $CATALINA_PID
?
У меня есть cron
'd checker script, который отправляет электронное сообщение, когда tomcat не работает:
kill -0 `cat $CATALINA_PID` > /dev/null 2>&1
if [ $? -gt 0 ]
then
echo "Check tomcat" | mailx -s "Tomcat not running" [email protected]
fi
Я думаю, вы могли бы также использовать wget
для проверки работоспособности вашего кота. Если у вас есть страница диагностики с пользовательской загрузкой и т.д., Вы можете периодически ее выбирать и анализировать, чтобы определить, что-то не так.
Ответ 2
В моей Linux-системе я запускаю Tomcat с помощью startup.sh script. Чтобы узнать, работает ли он или нет, я использую
ps -ef | grep tomcat
Если выходной результат содержит весь путь к моей папке tomcat, то он работает
Ответ 3
попробуйте это вместо этого и потому, что ему нужны привилегии root, используйте sudo
sudo service tomcat7 status
Ответ 4
netstat -lnp | grep 8080
, вероятно, будет лучшим способом, если вы знаете порт прослушивания Tomcat. Если вы хотите быть уверенным, что это функционально, вам нужно будет установить соединение и отправить HTTP-запрос и получить ответ. Вы можете сделать это программно или с помощью любого веб-браузера.
Ответ 5
Если tomcat установлен локально, введите следующий URL-адрес в окне браузера:
{localhost: 8080}
Это отобразит домашнюю страницу Tomcat со следующим сообщением.
Если вы видите это, вы успешно установили Tomcat. Поздравляем!
Если tomcat установлен на отдельном сервере, вы можете ввести замените localhost на допустимое имя хоста или Iess, где установлен tomcat.
Вышеупомянутое относится к стандартной установке, в которой tomcat использует порт 8080 по умолчанию
Ответ 6
Вы можете проверить статус tomcat следующими способами:
ps -ef | grep tomcat
Это вернет путь tomcat, если tomcat работает
netstat -a | grep 8080
где 8080 - порт tomcat
Ответ 7
wget url
или curl url
где url - это URL-адрес сервера tomcat, который должен быть доступен, например:
wget http://localhost:8080
.
Затем проверьте код выхода, если он 0 - tomcat.
Ответ 8
Создайте сценарий оболочки, который проверяет, находится ли tomcat вверх или вниз, и установите cron для sh, чтобы он проверял каждые несколько минут, и автоматически запускайте tomcat, если он выключен. Пример кода ниже
TOMCAT_PID=$(ps -ef | awk '/[t]omcat/{print $2}')
echo TOMCAT PROCESSID $TOMCAT_PID
if [ -z "$TOMCAT_PID" ]
then
echo "TOMCAT NOT RUNNING"
sudo /opt/tomcat/bin/startup.sh
else
echo "TOMCAT RUNNING"
fi
Ответ 9
Я обнаружил, что Tomcat довольно утончен в том, что работающий процесс или открытый порт вовсе не означает, что он фактически обрабатывает запросы. Обычно я пытаюсь захватить известную страницу и сравнить ее содержимое с предварительно вычисленным ожидаемым значением.
Ответ 10
Я всегда делаю
tail -f logs/catalina.out
Когда я вижу там
INFO: Server startup in 77037 ms
тогда я знаю, что сервер завершен.
Ответ 11
Вы пытаетесь настроить систему оповещения? Для простого "heartbeat" выполните HTTP-запрос к порту Tomcat.
Для более тщательного мониторинга вы можете настроить JMX и/или SNMP для просмотра статистики JVM. Мы запускаем Nagios с плагином SNMP (мосты JMX), чтобы проверять использование памяти Tomcat и запрашивать размер пула потоков каждые 10-15 минут.
http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
Обновление (2012):
Мы обновили наши системы, чтобы использовать "monit" для проверки процесса tomcat. Мне это и вправду нравится. При очень небольшой конфигурации он автоматически проверяет, работает ли служба, и автоматически перезапускается, если это не так. (отправка оповещения по электронной почте). Он может интегрироваться с сценариями /etc/init.d или проверять по имени процесса.
Ответ 12
Так как мои экземпляры tomcat называются tomcat_. Например. tomcat_8086, я использую
#
ps aux | grep tomcat
Другой метод использует утилиту nc
nc -l 8086
(номер порта)
или
ps aux | grep java
Ответ 13
$ sudo netstat -lpn |grep :8080
Чтобы проверить номер порта
$ ps -aef|grep tomcat
Подходит ли какой-нибудь tomcat под сервером.
tsssinfotech-K53U infotech # ps -aef|grep tomcat
root 9586 9567 0 11:35 pts/6 00:00:00 grep --colour = auto tomcat
Ответ 14
Попробуйте выполнить эту команду
ps -ef | awk '/[t]omcat/{print $2}'
Он вернет pid, если tomcat запущен.
Ответ 15
В основном вы хотите протестировать
- Возможность подключения к вашему экземпляру tomcat
- Соберите базовую статистику
- Выполняется ли процесс unix
Я буду оценивать первые 2 варианта, так как третий уже был достаточно отвечен.
проще всего создать веб-страницу на вашем WebApp, которая собирает некоторые основные показатели и имеет клиента, который может читать результаты или обнаруживать проблемы с подключением.
Для этого у вас есть несколько проблем
Ответ 16
Вот мои два цента.
У меня есть несколько экземпляров tomcat, работающих на разных портах для настройки моего кластера. Я использую следующую команду для проверки всех процессов, запущенных на разных портах.
/sbin/fuser 8080/tcp
Замените номер порта в соответствии с вашими потребностями.
И чтобы убить процесс, используйте -k
в приведенной выше команде.
- Это намного быстрее, чем способ
ps -ef
или любые другие команды, в которых вы вызываете команду, и вызываете ее поверх grep
.
- Хорошо работает с несколькими установками tomcat или любым другим сервером, который использует порт, фактически работающий на одном сервере.
Эквивалентная команда в операционных системах BSD
fstat
Ответ 17
tomcat.sh
поможет вам легко это понять.
Использование документа tomcat.sh говорит:
без аргументов: вывести идентификатор процесса кота, если он запущен, иначе ничего не делать
Итак, запустите команду в командной строке и проверьте наличие pid:
$ tomcat.sh