Я установил tomcat9 на ubuntu 16.04, который обычно запускается из командной строки,
sudo /usr/local/tomcat9/startup.sh
и все проекты в веб-приложениях могут быть загружены.
Однако он всегда зависает при загрузке "webapps / docs", если я попытаюсь запустить его при загрузке ОС. Вот снимок catalina.out:
Я пробовал 3 вида методов для автоматического запуска tomcat.
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
1) отредактировать файл "/etc/systemd/system/tomcat.service"
2) загрузить конфигурацию в командной строке
systemctl daemon-reload
systemctl start tomat
3) проверить статус
systemctl status tomat
, который показывает успешный запуск службы Tomcat
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 запущен, но загрузка веб-приложений не завершена, зависает при загрузке первого приложения» документы ".
Понятия не имею, пожалуйста, помогите.
Подобное поведение я когда-то имел, когда при запуске была установлена другая переменная системной среды JAVA_HOME.
Подозрительная строка такова:
Это похоже на другую java, чем та, которую вы упомянули с JAVA_HOME = / usr / lib / jvm / jdk1.8.0_111
.
Я бы попробовал что-то вроде этого:
вариантов обновления --config java
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 .
Я надеюсь, что дал вам какой-то вклад в дальнейшее исследование вашей проблемы.
В моем случае (с использованием tomcat 8.5 и модуля systemd.service, без rc.local/sysv ), решение заключалось в изменении с помощью:
WorkingDirectory=/opt/tomcat-foobar/