• Como Correr Tomcat Como Daemon siendo ROOT En Linux – JSVC

    JSVC es una libreria que sirve para correr procesos Java en linux como Daemons. Cuando instalamos Apache Tomcat en linux tenemos que utilizar esta libreria para poder hacerlo correr como Daemon bajo el usuario ROOT.

    JSVC permite iniciar al proceso en el puerto 80 (si no sos root no podes iniciar ningun proceso debajo del 1024) y setear un usuario aislado (tomcat en este caso) para el proceso correspondiente.

    Como prerequisito vamos a tener que tener instalado JDK, Tomcat, y JSVC.



    Podes obviar la lib/soft que ya tenes instalada.

    apt-get install openjdk-6-jdk tomcat5.5 jsvc
    

    Ahora el script. Es mucho codigo y por favor leelo bien para customizarlo adaptandolo a tus necesidades. Abri un vi o nano y edita este file.

    nano /etc/init.d/tomcatd

    Ahora el codigo..

    echo "Setting enviroment variables..."
    # your jdk
    export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
    export PATH=$PATH:$JAVA_HOME/bin
    # your tomcat installation path
    export CATALINA_HOME=/usr/share/tomcat6
    
    DAEMON_HOME=$CATALINA_HOME/bin
    #pid file to your tomcat installation
    PID_FILE=/usr/share/tomcat6/bin/tomcatd.pid
    #to run the process as an isolated user
    TOMCAT_USER=tomcat
    RETVAL=0
    TOMCAT=$CATALINA_HOME
    TOMCAT_BIN=$TOMCAT/bin
    TMP_DIR=/var/tmp
    CLASSPATH=$JAVA_HOME/lib/tools.jar:\
    $CATALINA_HOME/bin/commons-daemon.jar:\
    $CATALINA_HOME/bin/bootstrap.jar
    
    case "$1" in
            start)
    
            echo "Starting tomcat"
            jsvc \
            -user $TOMCAT_USER \
            -home $JAVA_HOME \
            -Dcatalina.home=$CATALINA_HOME \
            -Djava.io.tmpdir=$TMP_DIR \
            -Dfile.encoding=ISO-8859-1 \   #file encoding, sirve para el español
            -pidfile $PID_FILE \
            -outfile $CATALINA_HOME/logs/catalina.out \
            -errfile $CATALINA_HOME/logs/catalina.err \
            -cp $CLASSPATH \
            org.apache.catalina.startup.Bootstrap
    
            echo "Tomcat started OK."
            exit $?;;
    
            stop)
            echo "Stopping Tomcat..."
            jsvc \
            -stop \
            -pidfile $PID_FILE \
            org.apache.catalina.startup.Bootstrap
            echo "Tomcat stopped"
        exit $?
        ;;
    
      *)
        echo "Usage tomcat.sh start/stop"
        exit 1;;
    esac
    

2 Comments


  1. angelcaido says:

    Jejeje
    No es por joder, pero qué problema hay en usar sudo /etc/init.d/tomcat5.5 start???

  2. admin says:

    Por que al momento que escribi esto todavia no habian releases para linux de tomcat y lo tenias que hacer a mano.

    El script distribuido para las versiones corrientes de tomcat son mucho mejores que el que esta aca.

Leave a comment