I have written an init script for Tomcat Catalina running in RHEL version 5. I have tested this script using Oracle Enterprise Linux 5.5 Carthage. The script should comply to the init standards defined for RedHat Enterprise Linux using the INIT Functions lib.
The script also alows the use of chkconfig eventhough you might want to alter the used priorities (56 10)
#!/bin/sh # # "$Id: catalina ,v 1.0 2010/08/10 Chris_g Exp $" # # Startup/shutdown script for tomcat(Catalina) Application server. # # Linux chkconfig stuff: # # chkconfig: 2345 56 10 # description: Startup/shutdown script for the tomcat application server. ###### # Source function library. ###### . /etc/init.d/functions # Define where the catalina.sh script is located. ###### CATALINA_BIN='/u01/tomcat/bin/catalina.sh 1> /dev/null'; # Find the catalina process using ps / awk. # The match function will return 0 when no match is found with the string "java". # Position $9 should contain the path to the Java executable used by catalina. ###### PROC=`ps -efc | grep apache.catalina | awk 'BEGIN { FS=" "}; { if( match($9, "java") != 0 ) print $9;}'` # Replace a potential empty string with a fake process so the RH daemon functions are able to parse # it properly ###### if [[ "$PROC" == '' ]]; then PROC='Tomcat_JVM'; fi # Define the application name that is listed in the daemonize step. PROG='Tomcat JVM'; # LOCKFILE LOCK='/var/lock/subsys/tomcat'; start () { echo -n $"Starting $PROG: " # start daemon daemon $CATALINA_BIN start RETVAL=$? echo [ $RETVAL = 0 ] && touch $LOCK return $RETVAL } stop () { # stop daemon echo -n $"Stopping $PROG: " killproc $PROC RETVAL=$? echo [ $RETVAL = 0 ] && rm -f $LOCK } restart() { stop start } case $1 in start) start ;; stop) stop ;; restart) restart ;; status) status $PROC RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|status}" exit 3 esac exit $RETVAL
# INSTALL
1. Touch a new tomcat file in your init directory.
>touch /etc/init.d/tomcat
2. Copy paste the code above into this file using vi
vi /etc/init.d/tomcat
(putty users)
press the insert button (this should put vi in insert mode)
Alter the tomcat catalina.sh path and copy the altered code to your clipboard and paste it into putty using a richt mouse click.
press esc (this should get you out of insert mode)
next press ” shift + : “, “w”, “enter” (this should save the file)
3. If catalina.sh was able to start tomcat (all vars/java configured) then now the tomcat script should be able to handle the startup.
4. If catalina was allready running, try;
service tomcat status
This should allready give a result equal to;
java (pid 14389) is running…
5. Add tomcat to the chkconfig for automatic startup
chkconfig –level 2345 tomcat on
Hope this helps
Tagged: and, Apache, Apache TOMCAT, Apache tomcat catalina, at, auto, Automatic, automaticaly, automaticly, boot, booting, boottime, catalina, catalina init.d, catalina startup, chkconfig, Daemon, deamonize, enabled, Enterprise, fancy, File, functions, Init, init script, init.d, init.d script, Linux, lock, Oracle, Red Hat, Restart, Script, scriptign, Scripting, scripts, start, start script, startup, startup script, Status, stop, subsystem, Tomcat, Using, With
