Tomcat can be run as a daemon using the jsvc tool from the
commons-daemon project. Source tarballs for jsvc are included with the
Tomcat binaries, and need to be compiled. Building jsvc requires
a C ANSI compiler (such as GCC), GNU Autoconf, and a JDK.
Before running the script, the JAVA_HOME
environment
variable should be set to the base path of the JDK. Alternately, when
calling the ./configure
script, the path of the JDK may
be specified using the --with-java
parameter, such as
./configure --with-java=/usr/java
.
Using the following commands should result in a compiled jsvc binary,
located in the $CATALINA_HOME/bin
folder. This assumes
that GNU TAR is used, and that CATALINA_HOME
is an
environment variable pointing to the base path of the Tomcat
installation.
 |  |  |
 |
cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..
|  |
 |  |  |
Tomcat can then be run as a daemon using the following commands.
 |  |  |
 |
cd $CATALINA_HOME
./bin/jsvc -Djava.endorsed.dirs=./common/endorsed -cp ./bin/bootstrap.jar \
-outfile ./logs/catalina.out -errfile ./logs/catalina.err \
org.apache.catalina.startup.Bootstrap
|  |
 |  |  |
jsvc has other useful parameters, such as -user
which
causes to switch to another user after the daemon initialization is
complete. This allows, for example, running Tomcat as a non priviledged
user while still being able to use privileged ports.
jsvc --help
will return the full jsvc usage
information. In particular, the -debug
option is useful
to debug issues running jsvc.
The file $CATALINA_HOME/bin/jsvc/native/tomcat.sh
can be
used as a template for starting Tomcat automatically at boot time from
/etc/init.d
. The file is currently setup for running
Tomcat 4.1.x, so it is necessary to edit it and change the classname
from BootstrapService
to Bootstrap
.