Запуск tomcat зависает при загрузке, но успешно запускается в командной строке

Я установил tomcat9 на ubuntu 16.04, который обычно запускается из командной строки,

sudo /usr/local/tomcat9/startup.sh

и все проекты в веб-приложениях могут быть загружены.

Однако он всегда зависает при загрузке "webapps / docs", если я попытаюсь запустить его при загрузке ОС. Вот снимок catalina.out:

catalina.out


Я пробовал 3 вида методов для автоматического запуска tomcat.

1. Настроить службу в директории init.d

1) Скопируйте файл «catalina.sh» в «/etc/init.d» и переименуйте его в «tomcat» 2) добавить в этот файл Evirement Vintage:

CATALINA_HOME=/usr/local/tomcat9
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111 

3) использовать команду

  service tomcat start

2. настроить службу в systemd

1) отредактировать файл "/etc/systemd/system/tomcat.service" enter image description here

2) загрузить конфигурацию в командной строке

   systemctl daemon-reload
   systemctl start tomat

3) проверить статус

   systemctl status tomat

, который показывает успешный запуск службы Tomcat

3. Сначала установите службу "rc.local" и добавьте сценарий запуска в файл "rc.local"

1) отредактируйте файл "/etc/systemd/system/rc-local.servic"

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

2) отредактируйте файл "/ etc / rc.local "

  sudo /usr/local/tomcat9/bin/startup.sh

3) включить службу" rc.local "

  sudo systemctl enable rc-local.service

4) reboot

Все эти методы дали одинаковый результат: tomcat запущен, но загрузка веб-приложений не завершена, зависает при загрузке первого приложения» документы ".

Понятия не имею, пожалуйста, помогите.

0
03.03.2017, 02:15
2 ответа

Подобное поведение я когда-то имел, когда при запуске была установлена ​​другая переменная системной среды JAVA_HOME.
Подозрительная строка такова: suspect line

Это похоже на другую java, чем та, которую вы упомянули с JAVA_HOME = / usr / lib / jvm / jdk1.8.0_111 .

Я бы попробовал что-то вроде этого:

  1. проверьте Java по умолчанию с помощью вариантов обновления --config java
  2. проверьте, установлен ли где-нибудь JAVA_PATH

Далее вы упомянули вы скопировали catalina.sh в /etc/init.d . Это тоже может быть проблемой. В наших средах (на самом деле tomcat7, но я думаю, что он очень похож) у нас есть простой скрипт в /etc/init.d , который устанавливает JAVA_HOME как start startup.sh . Это выглядит примерно так:

JAVA_HOME=/opt/jdk1.8.0_92/
export JAVA_HOME
JRE_HOME=/opt/jdk1.8.0_92/jre
export JRE_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/opt/tomcat

case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh -force
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh -force
sleep 3
sh $CATALINA_HOME/bin/startup.sh
;;

Возможно, вам стоит подумать о том, чтобы запустить startup.sh с вашим сценарием /etc/init.d .

Я надеюсь, что дал вам какой-то вклад в дальнейшее исследование вашей проблемы.

0
28.01.2020, 04:48

В моем случае (с использованием tomcat 8.5 и модуля systemd.service, без rc.local/sysv ), решение заключалось в изменении с помощью:

WorkingDirectory=/opt/tomcat-foobar/
0
28.04.2021, 12:56

Теги

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