Tomcat shudown не уничтожает процесс

Возможное решение:

  1. Настройте IIS, который перерабатывает пул приложений, зарегистрирован к журналу событий Windows
  2. Пошлите электронные письма в зависимости от записей журнала событий (см. здесь для примера - реализация.NET),

2
задан 23 February 2010 в 18:50
4 ответа

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

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

По существу для Вашего сценария нужны строки при главном утверждении

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

Первые состояния линии runlevels это должно быть запущено на, а также приоритетный запуск и уровни завершения работы. (Это создало бы сценарии S99 в/etc/rc3.d,/etc/rc4.d, и/etc/rc5.d и сценарии K10 всего остальные),

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

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

0
ответ дан 3 December 2019 в 10:25
  • 1
    Привет я создал развернуть сценарий, который разработан, чтобы скопировать военный файл с предопределенного сетевого местоположения и развернуть его в месте кота. Этот сценарий сначала пытается завершить работу процесса кота путем вызова " bin/shutdown.sh". затем это удаляет старый военный файл из папки веб-приложения. После этого сценария перемещения и военный файл копии. После того как военный файл копируется в папке веб-приложения, он пытается перезапустить сервер кота. Но это перестало работать; потому что это не делает остановился на последнем вызове закрытия. Чтобы завершить работу и запустить кота, я использую сценарии, найденные в пакете. –   24 February 2010 в 09:25
  • 2
    Vijay Tomcat завершает работу, если Вы вручную выполняете bin/shutdown.sh или разве Tomcat, не завершит работу независимо от того, спрашиваете ли Вы это к вручную или с помощью Вашего сценария развертывания? –  David Harrison 26 March 2010 в 04:32

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

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

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

0
ответ дан 3 December 2019 в 10:25

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

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

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

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

В случае, если вам нужно выбрать уничтожение процесса, вы можете использовать указанный ниже сценарий, чтобы сделать его одной командой (поиск процесс, а затем убивает его). Просто вставьте внутри скрипт и запускайте его всякий раз, когда вы хотите убить запущенного 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 после попытки убийства.

Надеюсь, это поможет.

0
ответ дан 3 December 2019 в 10:25

Теги

Похожие вопросы