
Tomcat을 자동으로 시작하려고 하는데 비참하게 실패하고 있습니다. (Amazon ami-11ca2d78을 기반으로 Fedora 8에서 실행되는 Tomcat 6.0.16입니다.) 따라서 표준 지침에 따라 /etc/init.d/tomcat
다음을 포함하여 만들었습니다.
export JRE_HOME=/env/jdk1.6.0_07/jre/
case $1 in
start)
sh /env/tomcat/bin/startup.sh
;;
stop)
sh /env/tomcat/bin/shutdown.sh
;;
restart)
sh /env/tomcat/bin/shutdown.sh
sh /env/tomcat/bin/startup.sh
;;
esac
exit 0
그리고 나는 chmod 755를 사용했습니다. 그런 다음 소프트 링크를 만듭니다.
ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
그러나 재부팅하면 실패하고 로그에 다음 예외가 표시됩니다.
java.lang.IllegalArgumentException: 문서 기반 /env/tomcat/webapps/QCServer가 존재하지 않거나 읽을 수 있는 디렉토리가 아닙니다.
/etc/init.d/tomcat start
그러나 명령줄에서 직접 실행하면 모든 것이 잘 작동합니다. 그리고 이것은 모든 사람이 r+x 권한을 가질 수 있는 읽기 가능한 디렉토리입니다. 그럼 내가 뭘 잘못하고 있는 걸까요? 도움을 주셔서 대단히 감사합니다!
교류
답변1
읽을 수 있다면 디렉토리를 찾을 수 없다는 것이 문제입니다. Tomcat을 직접 시작했을 때 '루트' 사용자로 로그인되어 있었던 것 같습니다. 사용자는 tomcat이 설치된 위치를 가리키도록 CATALINA_HOME 설정을 가지고 있습니다. 문제는 Tomcat이 응용 프로그램 기본 디렉터리를 찾을 수 없다는 것입니다.
'QCServe'에 대한 기본 디렉터리를 지정한 server.xml 파일에서 상대 경로 대신 전체 경로를 사용합니다. 애플리케이션이 /opt/apps/tomcat/webapps/QCServe에 설치된 경우 해당 절대 경로를 여기에 입력하세요.
-N
답변2
어떤 런레벨을 실행하고 있나요?
/etc/rc3.d에 링크를 만듭니다.
답변3
/etc/init.d/tomcat으로 저장하고 chkconfig에서 tomcat을 추가합니다. 설치에 맞게 필요에 따라 상단의 값을 편집하십시오. 제시된 값은 단지 예시일 뿐입니다(특히 JAVA_OPTS 메모리 설정).
#!/bin/sh
#
# Startup script for Tomcat
#
# chkconfig: 345 82 20
# description: Tomcat is a servlet runner
JAVA_HOME=/usr/local/java
TOMCAT_HOME=/usr/local/tomcat
XMFILE=$TOMCAT_HOME/conf/server.xml
JAVA_OPTS="-server -Xms1536m -Xmx1536m -Xmn384m -XX:+UseParallelGC"
CATALINA_OPTS=""
export JAVA_HOME TOMCAT_HOME JAVA_OPTS CATALINA_OPTS
# See how we were called.
case "$1" in
start)
cd $TOMCAT_HOME
./bin/startup.sh -config $XMFILE
;;
stop)
cd $TOMCAT_HOME
./bin/shutdown.sh -config $XMFILE
;;
restart)
$0 stop
sleep 3
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0