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