우분투 16.04에 tomcat9을 설치하고 명령줄에서 정상적으로 시작했는데,
sudo /usr/local/tomcat9/startup.sh
그리고 webapps의 모든 프로젝트를 로드할 수 있습니다.
그러나 OS가 부팅될 때 실행하려고 하면 "webapps/docs"를 로드하는 동안 항상 중단됩니다. 다음은 catalina.out의 스냅샷입니다:
Tomcat을 자동으로 시작하는 세 가지 방법을 시도했습니다.
1. init.d 디렉터리에 서비스를 설정합니다.
1) "catalina.sh" 파일을 "/etc/init.d"에 복사하고 이름을 "tomcat"으로 바꿉니다. 2) 파일에 Evirement Virables를 추가합니다.
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" 파일을 편집합니다.
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) 다시 시작
이러한 모든 방법은 동일한 결과를 제공합니다. Tomcat이 시작되지만 웹 애플리케이션 로드가 완료되지 않아 첫 번째 애플리케이션 "문서"를 로드하는 동안 중단됩니다.
저는 이것에 대해 아무것도 모릅니다. 도와주세요.
답변1
시작 시 다른 JAVA_HOME 시스템 환경 변수를 설정해도 비슷한 동작이 발생했습니다.
의심스러운 라인은 다음과 같습니다.
이것은 당신이 언급한 자바와는 다르게 보입니다 JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111
.
나는 다음과 같은 것을 시도할 것입니다:
- 기본 Java를 확인하세요.
update-alternatives --config java
JAVA_PATH
a가 어딘가에 설정되어 있는지 확인하세요 .
catalina.sh
또한 에 복사했다고 말씀하셨는데 /etc/init.d
, 이것도 문제가 될 수 있습니다. 우리 환경(실제로는 tomcat7이지만 매우 유사하다고 생각함)에는 간단한 스크립트가 있습니다./etc/init.dJAVA_HOME을 시작하도록 설정시작 파일. 다음과 같습니다.
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
;;
어쩌면 start.sh 사용을 고려해야 할 수도 있습니다./etc/init.d스크립트.
귀하의 문제를 더 자세히 조사할 수 있도록 몇 가지 의견을 제공하고 싶습니다.
답변2
내 경우(rc.local/sysv가 아닌 tomcat 8.5 및 systemd.service 장치 사용) 솔루션은 다음과 같이 변경되었습니다.
WorkingDirectory=/opt/tomcat-foobar/
답변3
부팅 시 Tomcat을 시작하는 한 가지 방법은 cron
다음 속성을 사용하여 @reboot
실행하는 것입니다.
터미널을 열고 다음을 입력하세요.
sudo crontab -e
파일 끝에 다음 명령을 입력하십시오.
@재시작PATH_TO_WHERE_TOMCAT_설치됨/bin/startup.sh
파일을 저장하고 종료합니다.
위 명령은 컴퓨터가 시작될 때마다 명령을 실행합니다.