[opencms-dev] AA Starting Tomcat under Linux
Michael.Kuethe at die-fabrik.org
Michael.Kuethe at die-fabrik.org
Wed May 17 12:01:24 CEST 2006
Hi,
with SUSE you also have to add two links in ther suitable rc directory
normaly rc3.d
They are named like this
SXXtomcat
KXXtomcat
Where XX is a number with detemines, when the start or stop command will
occur!
These Link should point to to tomcat script, which is in the /etc/init.d
directory
This Script has to handle at least a STOP and a START argument
Here's the script I'm using
#! /bin/sh
# Copyright (c) 1995-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.
#
# Author: Petr Mladek <feedback at suse.de>
#
# /etc/init.d/tomcat5
#
# and its symbolic link
#
# /usr/sbin/rctomcat5
#
# System startup script for the Tomcat servlet container
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $local_fs $remote_fs
# X-UnitedLinux-Should-Start: $named $syslog $time
# Required-Stop: $local_fs $remote_fs
# X-UnitedLinux-Should-Stop: $named $syslog $time
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Tomcat Servlet Container
# Description: Start Tomcat to allow JAVA server pages
### END INIT INFO
tomcatIsRunning()
{
tomcat_ps_log=`mktemp /var/tmp/tomcat-ps.log.XXXXXX`
ps aux --cols 1024 >"$tomcat_ps_log"
tomcat_is_running="false"
if grep "
-Dcatalina.base=$CATALINA_BASE.*-Dcatalina.home=$CATALINA_HOME.*org.apache.catalina.startup.Bootstrap"
"$tomcat_ps_log" >/dev/null 2>/dev/null ; then
tomcat_is_running="true"
fi
rm -f "$tomcat_ps_log"
test "$tomcat_is_running" = "true"
}
# Check for missing binaries and configuration
# Note: Special treatment of stop for LSB conformance
TOMCAT_CONFIG=/etc/sysconfig/j2ee
test -r "$TOMCAT_CONFIG" || { echo "$TOMCAT_CONFIG not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
# Read config
. "$TOMCAT_CONFIG"
#CATALINA_HOME="$CATALINA_HOME_4"
#CATALINA_BASE="$CATALINA_BASE_4"
# defaults CATALINA_BASE to CATALINA_HOME
test -n "$CATALINA_BASE" || CATALINA_BASE="$CATALINA_HOME"
test -x "$CATALINA_HOME/bin/startup.sh" || { echo
"$CATALINA_HOME/bin/startup.sh not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
test -x "$CATALINA_HOME/bin/shutdown.sh" || { echo
"$CATALINA_HOME/bin/shutdown.sh not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# is the BASE valid?
test -d "$CATALINA_BASE/webapps" || test -L "$CATALINA_BASE/webapps" || {
echo "$CATALINA_BASE/webapps not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
# the following variables affects the server
export CATALINA_HOME CATALINA_BASE
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num><num>
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status
# First reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.
case "$1" in
start)
echo -n "Starting Tomcat ($CATALINA_BASE)"
## Start daemon with startproc(8). If this fails
## the echo return value is set appropriate.
# NOTE: startproc return 0, even if service is
# already running to match LSB spec.
if tomcatIsRunning ; then
rc_failed 0
else
# try to fix permissions
chown --dereference tomcat:tomcat "$CATALINA_BASE"
for dir in "$CATALINA_BASE/conf" \
"$CATALINA_BASE/logs" \
"$CATALINA_BASE/temp" \
"$CATALINA_BASE/webapps" \
"$CATALINA_BASE/work" ; do
# the command true is used because of for example conf directory
may be mounted read-only
test -d "$dir" && chown -R --dereference tomcat:tomcat "$dir"
2>/dev/null || true
done
su tomcat -s /bin/bash -c "$CATALINA_HOME/bin/startup.sh"
>"$CATALINA_BASE/logs//start.log" 2>&1
sleep 1
if tomcatIsRunning ; then
rc_failed 0
else
rc_failed 7
fi
fi
rc_status -v
;;
stop)
echo -n "Shutting down Tomcat ($CATALINA_BASE)"
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.
if tomcatIsRunning ; then
su tomcat -s /bin/bash -c "$CATALINA_HOME/bin/shutdown.sh"
>"$CATALINA_BASE/logs/stop.log" 2>&1
# wait 60 sec for stop at maximum
wait_sec=60
while [ "$wait_sec" != "0" ] ; do
sleep 1
if ! tomcatIsRunning ; then
# theTomcat server is stoped, end the loop
wait_sec=0
break
fi
wait_sec=$((wait_sec -1))
done
# check the final status
if tomcatIsRunning ; then
rc_failed 1
else
rc_failed 0
fi
else
rc_failed 0
fi
# Remember status and be verbose
rc_status -v
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
$0 status >/dev/null && $0 restart
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart.
echo -n "Reload service Tomcat $($CATALINA_BASE)"
## if it supports it:
#killproc -HUP $TOMCAT_BIN
#touch /var/run/FOO.pid
#rc_status -v
## Otherwise:
$0 stop && $0 start
rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signalling, do nothing (!)
# If it supports signalling:
#echo -n "Reload service FOO"
#killproc -HUP $TOMCAT_BIN
#touch /var/run/FOO.pid
#rc_status -v
## Otherwise if it does not support reload:
rc_failed 3
rc_status -v
;;
status)
echo -n "Checking for Tomcat ($CATALINA_BASE)"
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
# NOTE: checkproc returns LSB compliant status values.
if tomcatIsRunning ; then
rc_failed 0
else
rc_failed 3
fi
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload,
## give out the argument which is required for a reload.
;;
*)
echo "Usage: $0
{start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
rc_exit
regards
Michael
<nickm at absa.co.za
>
Sent by: To
opencms-dev-bounc <opencms-dev at opencms.org>
es at opencms.org cc
Subject
17.05.2006 10:33 [opencms-dev] AA Starting Tomcat
under Linux
Please respond to
The OpenCms
mailing list
<opencms-dev at open
cms.org>
Hi sigi
Thanks for the advice
BTW I am using SUSE 9.3 Linux.
I created a file tomcat in this path
/etc/init.d/tomcat
I placed these command in this tomcat file :
cd $CATALINA_home/bin
./startup.sh
And nothing happens the tomcat does not start
Do I need to change the ./startup.sh to just startup.sh
and/or do I need to make a change in another file to point to the tomcat
file ?
Regards
Nico
Message: 24
Date: Tue, 16 May 2006 11:24:51 +0200
From: "Siegfried Puchbauer" <siegfried.puchbauer at gmail.com>
Subject: Re: [opencms-dev] AA Starting Tomcat under Linux
automatically
To: "The OpenCms mailing list" <opencms-dev at opencms.org>
Message-ID:
<53239a200605160224i1a4f0457x9aa4f9409875c445 at mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
Which distribution of linux do you use? In my case (gentoo linux) I
added an
init script (/etc/init.d/tomcat5) and added this to the default
runlevel...
you can check the docs of your distri for how to add a service to the
default runlevel...
hth
sigi
On 5/16/06, nickm at absa.co.za <nickm at absa.co.za> wrote:
>
> Hi there
>
> How do I get Tomcat under Linux to start automatically ?
>
> I added (exported) a CATALINA_HOME environment variable in my
> etc/profile
> I even added this line to my etc/profile :
> $CATALINA_HOME/bin/startup.sh
>
>
> But the tomcat does not start automatically
> I want it to start in the root profile so all users can have it
> available
>
>
> Regards
> Nico
>
___________________________________________________________
Important Notice:
Authorised Financial Services Provider
Important restrictions, qualifications and disclaimers
("the Disclaimer") apply to this email. To read this click on the
following address or copy into your Internet browser:
http://www.absa.co.za/disclaimer
The Disclaimer forms part of the content of this email in terms of
section 11 of the Electronic Communications and Transactions
Act, 25 of 2002.
If you are unable to access the Disclaimer, send a blank e-mail
to disclaimer at absa.co.za and we will send you a copy of the
Disclaimer.
_______________________________________________
This mail is sent to you from the opencms-dev mailing list
To change your list options, or to unsubscribe from the list, please visit
http://lists.opencms.org/mailman/listinfo/opencms-dev
More information about the opencms-dev
mailing list