Running Tomcat as a service is as easy as getting jsvc to run and it’s all documented in … hmmm well anyways this is how I do it…
Compiling JSVC
[root ~]# cd $TOMCAT_HOME/bin && tar -zxf jsvc.tar.gz [root ~]# cd jsvc-src && chmod +x configure [root ~]# ./configure [root ~]# make
Now there whould be a file called jsvc in $TOMCAT_HOME/bin/jsvc-src/native/ please move this file to $TOMCAT_HOME/bin/jsvc this is the Java service executable that will execute your Tomcat server. The next step is to setup your init file, lets create the file /etc/init.d/tomcat that will be used to start Tomcat with jsvc.
#!/bin/sh ############################################################## # chkconfig: 345 98 98 ### BEGIN INIT INFO # Provides: Tomcat # Required-Start: $local_fs $network $remote_fs # Required-Stop: $local_fs $network $remote_fs # Default-Start: 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start and stop Tomcat # Description: Tomcat is a J2EE Application server ### END INIT INFO CATALINA_HOME=/usr/local/tomcat DAEMON_HOME=/usr/local/tomcat TOMCAT_USER=tomcat # Make sure we load the setenv.sh file # since we don't use the startup.sh script . $CATALINA_HOME/bin/setenv.sh # for multi instances adapt these lines. TMP_DIR=/var/tmp PID_FILE=/var/run/jsvc.pid CATALINA_BASE=/usr/local/tomcat CLASSPATH=\ $JAVA_HOME/lib/tools.jar:\ $CATALINA_HOME/bin/commons-daemon.jar:\ $CATALINA_HOME/bin/bootstrap.jar case "$1" in start) # # Start Tomcat # #-user $TOMCAT_USER \ echo $"Starting Tomcat..." cd $CATALINA_HOME && \ $DAEMON_HOME/bin/jsvc \ -home $JAVA_HOME \ -Dcatalina.home=$CATALINA_HOME \ -Dcatalina.base=$CATALINA_BASE \ -Djava.io.tmpdir=$TMP_DIR \ -wait 10 \ -pidfile $PID_FILE \ -outfile $CATALINA_HOME/logs/catalina.out \ -errfile '&1' \ $CATALINA_OPTS \ -cp $CLASSPATH \ org.apache.catalina.startup.Bootstrap # # To get a verbose JVM #-verbose \ # To get a debug of jsvc. #-debug \ exit $? ;; stop) # # Stop Tomcat # echo $"Stoping Tomcat..." $DAEMON_HOME/bin/jsvc \ -stop \ -pidfile $PID_FILE \ org.apache.catalina.startup.Bootstrap exit $? ;; restart) $0 stop $0 start exit $? ;; *) echo "Usage: tomcat {start|stop}" exit 1;; esac
Now you can start tomcat using /etc/init.d/tomcat start. You will see TWO java processes running on your computer when Tomcat is started in this way. There is one control process and then there is the wrapper for your java process (Tomcat).
Recent Comments