From: Michael Soibelman on 7 Jan 2008 18:16 I recently re-installed tomcat55 on my system. When I try to start it up by using the (Yast) runlevel editor I get an error 7 warning and it does not start the tomcat server... When I use the startup script that comes with the tomcat55 installation located (on my system) at '/srv/www/tomcat55/base/bin' the server starts. How do I go about replacing the /etc/init.d/tomcat55 shell script with the provided startup.sh shell script ?? Is this the correct way to address this problem ? Thanks.
From: TGGA on 9 Jan 2008 18:01 Some being by the name of Michael Soibelman managed to piece together the following: > '/srv/www/tomcat55/base/bin' the server starts. > > How do I go about replacing the /etc/init.d/tomcat55 shell script with the > provided startup.sh shell script ?? Edit the script /etc/init.d/tomcat55 and ensure the path and executables in there are amended to the same executables/paths in the startup script. -- I'm a dyslexic satanist, I worship the drivel... must be why I'm here
From: Michael Soibelman on 9 Jan 2008 19:13 TGGA wrote: > Some being by the name of Michael Soibelman managed to piece together the > following: > >> '/srv/www/tomcat55/base/bin' the server starts. >> >> How do I go about replacing the /etc/init.d/tomcat55 shell script with >> the provided startup.sh shell script ?? > > Edit the script /etc/init.d/tomcat55 and ensure the path and executables > in there are amended to the same executables/paths in the startup script. > That sounds logical, however I am not sure exactly how/where to make the changes. Here are the two files. I hope I can get some assistance. I'll apologize in advance for the rather large post as the second file is quite large. 1. This is the file 'startup.sh' (located at /srv/www/tomcat55/base/bin/) #!/bin/sh # ----------------------------------------------------------------------------- # Start Script for the CATALINA Server # # $Id: startup.sh 385888 2006-03-14 21:04:40Z keith $ # ----------------------------------------------------------------------------- # Better OS/400 detection: see Bugzilla 31132 os400=false darwin=false case "`uname`" in CYGWIN*) cygwin=true;; OS400*) os400=true;; Darwin*) darwin=true;; esac # resolve links - $0 may be a softlink PRG="$0" while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`/"$link" fi done PRGDIR=`dirname "$PRG"` EXECUTABLE=catalina.sh # Check that target executable exists if $os400; then # -x will Only work on the os400 if the files are: # 1. owned by the user # 2. owned by the PRIMARY group of the user # this will not work if the user belongs in secondary groups eval else if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then echo "Cannot find $PRGDIR/$EXECUTABLE" echo "This file is needed to run this program" exit 1 fi fi exec "$PRGDIR"/"$EXECUTABLE" start "$@" 2. This is the suse file for /etc/init.d/tomcat55 (Tomcat55-5.5.23-112) #! /bin/sh # Copyright (c) 1995-2001 SuSE GmbH Nuernberg, Germany. # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. # # Author: Petr Mladek <feedback(a)suse.de> # # /etc/init.d/tomcat5 # # and its symbolic link # # /usr/sbin/rctomcat55 # # 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/tomcat55 test -r "$TOMCAT_CONFIG" || { echo "$TOMCAT_CONFIG not existing"; if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; } #save JAVA_HOME before it gets overwritten OLD_JAVA_HOME=$JAVA_HOME OLD_JAVA_OPTS=$JAVA_OPTS # Read config .. "$TOMCAT_CONFIG" # test whether JAVA_HOME and JAVA_OPTS were overwritten ... if empty now, reset to old values test -n "$JAVA_HOME" || JAVA_HOME=$OLD_JAVA_HOME test -n "$JAVA_OPTS" || JAVA_OPTS=$OLD_JAVA_OPTS #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; } # valid user and group? test -n "$TOMCAT_BASE_USER" || TOMCAT_BASE_USER="tomcat" test -n "$TOMCAT_BASE_GROUP" || TOMCAT_BASE_GROUP="tomcat" # pid set? test -n "$CATALINA_PID" || CATALINA_PID="/var/run/tomcat55.pid" # the following variables affects the server export CATALINA_HOME CATALINA_BASE CATALINA_OPTS CATALINA_TMPDIR JAVA_HOME JAVA_OPTS JPDA_TRANSPORT JPDA_ADDRESS JSSE_HOME CATALINA_PID TOMCAT_BASE_USER TOMCAT_BASE_GROUP # 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_BASE_USER:$TOMCAT_BASE_GROUP "$CATALINA_BASE" for dir in "$CATALINA_BASE/conf" \ "$CATALINA_BASE/logs" \ "$CATALINA_BASE/temp" \ "$CATALINA_BASE/server" \ "$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 -L --dereference $TOMCAT_BASE_USER $TOMCAT_BASE_GROUP "$dir" 2>/dev/null || true done touch $CATALINA_PID chown $TOMCAT_BASE_USER:$TOMCAT_BASE_GROUP $CATALINA_PID su $TOMCAT_BASE_USER -s /bin/bash -c "$CATALINA_HOME/bin/startup.sh $TOMCAT_OPTS > $CATALINA_BASE/logs//start.log 2>&1" sleep 5 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 # wait 60 sec for stop at maximum wait_sec=60 while [ "$wait_sec" != "0" ] ; do su $TOMCAT_BASE_USER -s /bin/bash -c "$CATALINA_HOME/bin/shutdown.sh > $CATALINA_BASE/logs/stop.log 2>&1" sleep 1 if ! tomcatIsRunning ; then # theTomcat server is stoped, end the loop wait_sec=0 break fi wait_sec=$((wait_sec -1)) done # if tomcat is _still_ running, try it with kill: if tomcatIsRunning then kill `cat $CATALINA_PID` # 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 fi # if tomcat is __still__ running, try it with kill -9 if tomcatIsRunning then kill -9 `cat $CATALINA_PID` # 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 fi # 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 Thanks for any help with this. ;-)
|
Pages: 1 Prev: SLES 10 smbpasswd switch Next: D-Link DWA-120 USB Wireless Stick |