LinuxForum.Fans
Тема

Автоматический перезапуск Tomcat при Heap Space

Автор: Mon4ik 10 сообщений 2653 просмотров
#376097

Добрый вечер. Возникла следующая проблема. Не отрабатывает перезапуск Tomcat процесс убивает и не запускает.
Команда в Catalina.sh

text
-XX:OnOutOfMemoryError=\"touch /tmp/tomcat_suicide;kill -9 %p\"

В логах при падении

text
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="touch /tmp/tomcat_suicide;kill -9 %p"
#   Executing /bin/sh -c "touch /tmp/tomcat_suicide"...
#   Executing /bin/sh -c "kill -9 29010"

...

Или может я не правильно понял, pid она просто убивает, но службу не запускает?

Если например сделаю так

text
-XX:OnOutOfMemoryError="/home/tomcatrestart.sh"

где в sh файле будет указано
[console]#!/bin/bash
service tomcat restart[/console]
Такая штука сработает?
Стоит CentOS 6.4

#376105

Может и сработает, но сначала надо убить её.

#376110

То есть это так будет?

text
#!/bin/bash
kill -9 p% && service tomcat start
#376111

Не заметил что рестарт. Попробуй.

#376117

tomcat иногда не корректно останавливается, а потом не стартует, из-за того что у него висит файл tomcat.lock + java тупит.

Лучше так
[console]
kill -9 `pgrep -f catalina.sh`
[/console]
потом удалить файлы tomcat.pid + tomcat.lock

#376125

с sh файлом не прокатило(service tomcat restart)

text
/etc/init.d/tomcat: line 79: syntax error near unexpected token `('
/etc/init.d/tomcat: line 79: `            echo "...процесс завершен(pid ${wk_pid})

Простите за глупый вопрос, но где находятся эти файлы. tomcat.pid + tomcat.lock

text
kill -9 `pgrep -f catalina.sh`

С данной командой он будет находить pid catalina.sh и убивать его?

#376126
"Mon4ik" написал:
  С данной командой он будет находить pid catalina.sh и убивать его?

да

tomcat.pid + tomcat.lock ну или в корне tomcat или в /var/run/tomcat/

#376127
"i2ks" написал:
tomcat.pid + tomcat.lock

отсутвуют

text
kill -9 `pgrep -f catalina.sh`

Данную команду добавить в скрипт?
Вот не понятно как запускать(автоматически) томкат после смерти

#376191

Mon4ik, Я не пойму. Вам нужно отслеживать tomcat и если он отвалился (вообще нет pid) запускать его?

#376202

Мне нужно чтобы при heap space, tomcat перезапускался.

Войдите или зарегистрируйтесь, чтобы ответить.