По какой-то причине каждый раз, когда я останавливаю второй экземпляр httpd, используя
/usr/sbin/httpd -f /otherplace/httpd.conf -k stop
Один или два из моих экземпляров tomcat убиты (удалены из памяти) без каких-либо ошибок или следов того, что происходит.
Я запустил этот второй экземпляр, используя следующую команду:
/usr/sbin/httpd -f /otherplace/httpd.conf -k start
Подробности ниже:
Мои экземпляры Tomcat привязываются к порту 80 на разных IP-адресах. Второй экземпляр httpd привязывается к порту 5634 (к этому порту ничего не привязано). Бывают случаи, когда кота не убивают, это как случайность.
Спасибо за вашу помощь.
Возможно, попробуйте изменить команду SHUTDOWN по умолчанию из server.xml
<Server port="8005" shutdown="SHUTDOWN" debug="0">
к чему-то вроде
<Server port="8005" shutdown="0fbb9aebcbfbef203eca71b6be367859" debug="0">
Все, что отправляет "SHUTDOWN" на порт по умолчанию, остановит tomcat, возможно, ваш httpd отправляет его через соединитель или что-то в этом роде. ссылка 1, ссылка 2
Не говоря уже о том, что я точно знаю, как tomcat выполняет завершение работы ... Я ожидал бы наличия pid-файла, связанного с процессом, или управляющего порта, который сообщает приложению о завершении работы.
Однако, за исключением этого, сценарии обычно «охотятся и убивают», глядя на вывод ps -ef (или аналогичный). В этих случаях сценарии уничтожения легко могут быть слишком агрессивными и уничтожить все соответствующие pid-идентификаторы (или только их родителей).
Не могу сказать вам, сколько раз я редактировал скрипт в vi только для того, чтобы где-то меня убила агрессивная команда «стоп».
Apache имеет модуль который может пересылать запросы на tomcat. Этот модуль включен? Попробуйте отключить его, если он вам не нужен.