Способы уничтожения веток демонов в Tomcat, приложение не запускается - Как вы решаете это? - PullRequest
0 голосов
/ 02 ноября 2011

Я недавно развернул Grails-приложение на Amazon EC2.Я использовал MySQL и Tomcat (среди прочего).

Так как это было только для целей тестирования, я хотел испытать «плохие» ситуации, поэтому я удалил папки своих приложений из веб-приложений, пока приложение еще работало и всевот так.

Когда я наконец удалил все следы своего приложения, я попытался развернуть его новую версию, поместив новый war-файл в папку веб-приложений.

Приложение не будетНачалось из-за 8080 уже связанного исключения, после прочтения некоторых блогов я столкнулся с объяснением этой проблемы: потоки демона ...

Теперь я использовал:

pkill java

И это сделалхитрость, мой вопрос в том, как вы, ребята, справляетесь с этой ситуацией?

1 Ответ

0 голосов
/ 05 ноября 2011

Если вы пытаетесь определить, когда Tomcat умер, убедитесь, что он действительно остановлен (т. Е. Больше не работает), а затем перезапустите процесс, вашей лучшей ставкой будет какой-то процесс сердцебиения. Вы можете написать сценарий оболочки для запуска в том же окне, что и Tomcat, который периодически отправляет веб-запрос на определенный URL-адрес. Если он получает ожидаемое значение, то все в порядке, но если нет, то он выдаст команду kill, подождет и перезапустит - или отправит вам электронное письмо, предпримет другие действия и т. Д. Вы хотите убедиться, что этот процесс не Это демоновый поток, запущенный Tomcat по причинам, указанным выше (в некоторых случаях они продолжают работать). Скорее, я бы настроил его как скрипт, который будет запускаться как задание cron каждую минуту.

Конечно, если вы работаете в AWS EC2, было бы лучше иметь крошечный экземпляр, который выполняет этот мониторинг за вас. Когда он обнаруживает, что сервер Tomcat умер, он убивает весь этот экземпляр EC2 и запускает новый, чтобы заменить его. AWS имеет инструменты командной строки, которые вы можете использовать в сценариях для достижения такого типа управления. Это может быть даже лучшим решением, потому что тогда вы начинаете с чистого листа, поэтому любые изменения (например, уничтоженные файлы) будут восстановлены, когда вы присоедините том EBS или образ машины с вашим исходным образом сервера. Описанный выше метод (запуск сценария на том же сервере) не сможет легко обнаружить и исправить отсутствующие файлы или другие изменения, которые изначально привели к тому, что все пошло наперекосяк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...