[opencms-dev] AA Starting Tomcat under Linux

nickm at absa.co.za nickm at absa.co.za
Thu May 18 14:35:43 CEST 2006


Thanks very much 

regards
Nico 


 


-----Original Message-----
From: opencms-dev-bounces at opencms.org
[mailto:opencms-dev-bounces at opencms.org] On Behalf Of
Michael.Kuethe at die-fabrik.org
Sent: Wednesday, 17 May, 2006 12:01
To: The OpenCms mailing list
Subject: Re: [opencms-dev] AA Starting Tomcat under Linux

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=3D`mktemp /var/tmp/tomcat-ps.log.XXXXXX`
  ps aux --cols 1024 >"$tomcat_ps_log"
  tomcat_is_running=3D"false"
  if grep "
-Dcatalina.base=3D$CATALINA_BASE.*-Dcatalina.home=3D$CATALINA_HOME.*org.apac
he.catalina.startup.Bootstrap"
 "$tomcat_ps_log" >/dev/null 2>/dev/null ; then
    tomcat_is_running=3D"true"
  fi
  rm -f "$tomcat_ps_log"
  test "$tomcat_is_running" =3D "true"
}




# Check for missing binaries and configuration # Note: Special treatment
of stop for LSB conformance TOMCAT_CONFIG=3D/etc/sysconfig/j2ee test -r
"$TOMCAT_CONFIG" || { echo "$TOMCAT_CONFIG not existing";
      if [ "$1" =3D "stop" ]; then exit 0;
      else exit 6; fi; }

# Read config
. "$TOMCAT_CONFIG"

#CATALINA_HOME=3D"$CATALINA_HOME_4"
#CATALINA_BASE=3D"$CATALINA_BASE_4"
# defaults CATALINA_BASE to CATALINA_HOME test -n "$CATALINA_BASE" ||
CATALINA_BASE=3D"$CATALINA_HOME"

test -x "$CATALINA_HOME/bin/startup.sh" || { echo
"$CATALINA_HOME/bin/startup.sh not installed";
      if [ "$1" =3D "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" =3D "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" =3D "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=3D60
        while [ "$wait_sec" !=3D "0" ] ; do
          sleep 1
            if ! tomcatIsRunning ; then
            # theTomcat server is stoped, end the loop
            wait_sec=3D0
            break
          fi
          wait_sec=3D$((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=3D"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



_______________________________________________
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

Important Notice:=0A=
Authorised Financial Services Provider=0A=
=0A=
Important restrictions, qualifications and disclaimers ("the Disclaimer") ap=
ply to this email. To read this click on the following address or copy into=
 your Internet browser:=0A=
=0A=
http://www.absa.co.za/disclaimer=0A=
=0A=
The Disclaimer forms part of the content of this email in terms of sections=
 11 of the Electronic Communications and Transactions Act, 25 of 2002.=0A=
=0A=
If you are unable to access the Disclaimer, send a blank email to disclaimer=
@absa.co.za and we will send you a copy of the Disclaimer.



More information about the opencms-dev mailing list