Назад | Перейти на главную страницу

Завершение работы Tomcat не останавливает процесс

У меня проблемы с экземпляром tomcat. Я использую apache-tomcat-6.0.20 для linux. Моя ОС - CENTOS.

когда я выполняю команду

# bin/shutdown.sh

Он не закрывает процесс, в котором запущен tomcat.

Может ли кто-нибудь дать мне некоторое представление; что происходит с процессом.

Я видел эту проблему несколько раз с Tomcat. Пара вещей, которые могут помочь:

  1. Дайте ему немного времени, чтобы убедиться, что процесс действительно не завершается; сценарий выключения Tomcat пытается выполнить полное выключение, и это может занять некоторое время, если на сервере Tomcat было открыто большое количество потоков, когда вы вызывали сценарий выключения. Если это занимает более 5-10 минут, возможно, у вас другая проблема.
  2. Загляните в файл журнала (обычно logs / catalina.out в основном каталоге Tomcat) - в 9 случаях из 10 вы по крайней мере получите указатель на основную проблему. Если вам нужна дополнительная помощь, перейдите сюда и опубликуйте здесь сообщение об ошибке.

Ваша система не выключается? (например: Зависание?) Если нет, то это определенно завершает процесс, но не так, как вам хотелось бы. И сценарий запуска был написан вами или входил в комплект? Правильно ли предположить, что вы поработали со скриптами /etc/init.d? Вы захотите дать нам немного больше информации.

Скорее всего, вам необходимо зарегистрировать процесс с помощью chkconfig. Просто поместить Kscripts в /etc/rc#.d/ недостаточно, так как я не верю, что они вызываются, если chkconfig не знает о них.

По сути, вашему скрипту нужны строки вверху, в которых говорится

# chkconfig: 345 99 10
# description: This is what my script does.

В первой строке указаны уровни запуска, на которых следует запускать, а также приоритетные уровни запуска и завершения. (Он создавал бы скрипты S99 в /etc/rc3.d, /etc/rc4.d и /etc/rc5.d, и скрипты K10 во всех остальных)

Вдобавок к этому chkconfig проверит / var / lock / subsys /, чтобы увидеть, есть ли там файл блокировки для вашей службы. Поэтому прикоснитесь к файлу с тем же именем, что и ваша служба, в этом каталоге при запуске и удалите его при выходе.

Предполагая, что в вашем скрипте есть перечисленные выше элементы, его необходимо зарегистрировать с помощью chkconfig. Чтобы добавить скрипт, сделайте chkconfig --add <name>. Просто убедитесь, что сценарий находится в /etc/init.d/ с правильным именем.

У вас установлено профилирование? У Tomcat есть известная проблема с профилированием, заключающаяся в том, что он не выключается должным образом, если он установлен. В сценарии shutdown.sh есть обходной мод, но я все еще ищу его сам. Это в Tomcat 7, не знаю, есть ли это в Tomcat 6.

Лучший способ выключить tomcat - использовать сценарий выключения. Но многие люди сталкиваются с проблемами и в конечном итоге убивают процесс вручную.

Сценарий выключения работает правильно только в том случае, если сценарии, которые будут затронуты во время процесса выключения:

  1. принадлежит пользователю.
  2. принадлежит ПЕРВИЧНОЙ группе пользователя

это не сработает, если пользователь принадлежит к вторичным группам.

Если вам нужно убить процесс, вы можете использовать указанный ниже скрипт, чтобы сделать его одной командой (найти процесс и затем убить его). Просто вставьте скрипт и запускайте его всякий раз, когда вы хотите убить запущенного tomcat.

#Finds the tomcat process id
ps aux | grep tomcat | grep JavaVirtualMachines | awk -F  " " '{print $2}' > tomcatProcessID

#Kills the process id returned from above mentioned command.
kill -9 `cat tomcatProcessID` && tput setaf 3 && echo "Tomcat killed Successfully" ;rm -rf tomcatProcessID

#Not a mandatory command.
#Used to show all the remaining processes with 'tomcat' keyword in it.
#To inform on the console that the tomcat (running ess or indexer) is killed.
ps aux | grep tomcat | grep -v grep | grep -v killtomcat

Если хотите, можете добавить ps aux | grep tomcat | grep -v grep | grep -v killtomcat в конце, чтобы показать оставшиеся процессы tomcat после попытки уничтожения.

Я надеюсь, что это помогает.