Подтвердить что ты не робот

Работает ли Tomcat?

Заинтересованы знать, как обычно люди проверяют, работает ли Tomcat в среде Unix.

Я либо проверю, что процесс выполняется с помощью

ps -ef | grep java
ps -ef | grep logging

или я проверить, что номер порта активен

netstat -a | grep 8080

Есть ли лучший способ проверить, что Tomcat запущен? Вышеприведенное, похоже, должно быть "взломанным" способом проверки работы Tomcat.

4b9b3361

Ответ 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