Linux Mandriva에서 자동으로 Tomcat 실행 - java.io.IOException: 잘못된 매개변수

Linux Mandriva에서 자동으로 Tomcat 실행 - java.io.IOException: 잘못된 매개변수

내가 사용하는 자동 실행 스크립트는 다음과 같습니다.

#!/bin/sh

    # description: Tomcat start/stop script
    # chkconfig:

    TOMCAT_PATH=/java/apache-tomcat-7.0.32/bin
    TOMCAT_START=$TOMCAT_PATH/startup.sh
    TOMCAT_STOP=$TOMCAT_PATH/shutdown.sh

    start()
    {
    if [ -x ${TOMCAT_START} ]; then
    echo "Starting tomcat server..."
    ${TOMCAT_START} &
    else
    echo "Cannot start tomcat server"
    fi
    }

    stop()
    {
    if [ -x ${TOMCAT_STOP} ]; then
    echo "Stopping tomcat server"
    ${TOMCAT_STOP} &
    else
    echo "Cannot stop tomcat server..."
    fi
    }

    restart()
    {
    stop
    sleep 10
    start
    }

    case "$1" in
    'start')
    start
    ;;
    'stop')
    stop
    ;;
    'restart')
    restart
    ;;
    *)
    echo "Please supply an argument [start|stop|restart]"
    esac

넣었어요--

/etc/rc.d/init.d/

나는 이것을 시작에 추가했습니다 :

/sbin/chkconfig --add --level 345 tomcat

하지만 시스템을 재부팅했을 때 로그를 살펴보니 다음과 같습니다.

카트리나아웃:

...
INFO: Stopping service Catalina
jan 03, 2013 6:09:04 PM hudson.util.CharacterEncodingFilter destroy
INFO: CharacterEncodingFilter destroyed.
jan 03, 2013 6:09:04 PM javax.jmdns.impl.tasks.state.DNSStateTask run
WARNING: Canceler(www-...-ru.local.).run() exception 
java.io.IOException: Invalid argument
    at java.net.PlainDatagramSocketImpl.send(Native Method)
    at java.net.DatagramSocket.send(DatagramSocket.java:676)
    at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1537)
    at javax.jmdns.impl.tasks.state.DNSStateTask.run(DNSStateTask.java:131)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

프로세스가 시작되지 않습니다.

하지만 명령을 실행하면 -

/etc/rc.d/init.d/tomcat start

과정은 순조롭게 시작되었습니다.

왜 자동으로 시작되지 않습니까?

감사해요!

답변1

일부 쉘 스크립트를 변경했습니다.

#!/bin/sh
#
# Startup script for Tomcat
#

JAVA_HOME="/usr/java/jdk1.7.0_09" ;
JRE_HOME=/usr/java/jdk1.7.0_09/jre;
CATALINA_HOME=/java/tomcat-7.0.27;
export JAVA_HOME && export JRE_HOME &&$CATALINA_HOME/bin/startup.sh &&$CATALINA_HOME/bin/shutdown.sh

case "$1" in
start)
echo -n "Starting Tomcat"
su - tomcat -c $CATALINA_HOME/bin/startup.sh
;;
stop)
echo -n "Stopping Tomcat"
su - tomcat -c $CATALINA_HOME/bin/shutdown.sh
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac

exit 0

그럼 넣어

/etc/rc.d/init.d

실행 권한 추가:

# chmod +x /etc/init.d/ tomcat

추가된 기호 링크:

ln -s /etc/init.d/tomcat /etc/rc0.d/K91tomcat
ln -s /etc/init.d/tomcat /etc/rc1.d/K91tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S91tomcat
ln -s /etc/init.d/tomcat /etc/rc3.d/S91tomcat
ln -s /etc/init.d/tomcat /etc/rc4.d/S91tomcat
ln -s /etc/init.d/tomcat /etc/rc5.d/S91tomcat
ln -s /etc/init.d/tomcat /etc/rc6.d/K91tomcat

이제 모든 것이 괜찮습니다.

reboot;

카트리나아웃:

...
INFO: Server startup in 113947 ms

감사합니다!

관련 정보