• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Tomcat5 autostart Problem

Hallo zusammen

Folgendes problem
Ich hab letzte Version von Tomcat5(kein RPM) installiert, rctomcat5 start startet der server manuell aber nicht im autostartmodus beim booten. Ein link in /etc/init.d/rc3.d ist gesetzt aber beim booten wird er nicht gestartet.

BS: SLES9 SP2


Worann kann es ligen?

Danke.
 
Hallo danke für dein Antwort

hiermit Auszug aus der /etc/init.d/tomcat5

#! /bin/sh
# Copyright (c) 1995-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.
#
# Author: Petr Mladek <feedback@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: tomcat5
# 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


sieht eigentlich richtig aus oder?
 
Das ist alles Kommentar des Scripts. Das sorgt zwar dafür, dass das Script im Runlevel Editor von YaST hübsch dargestellt wird, aber der Tomcat wird davon nicht starten.
 
Das ist ja klar ich hab auch nur gesagt das ist Auszug.
Hier ist das Script komplett

#! /bin/sh
# Copyright (c) 1995-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.
#
# Author: Petr Mladek <feedback@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: tomcat5
# 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


und wie gesagt manuell mit /etc/init.d/tomcat5 start oder /usr/sbin/rctomcat5 start kann ich Tomcat starten

Aber /etc/init.d/rc3.d/S12tomcat5 -> ../tomcat5
funktioniert nicht
 
werden denn alle Required Daemons auch in runlevel 3 gestartet ?
was sagt /var/log/boot.msg zu deinem Script in Runlevel 3 ?
 
Ja es wird alles in rc3 gestartet es gibt kein rc5

/var/log/boot.msg sagt dazu

<notice>start services (tomcat5 sshd running-kernel powersaved mysql fbset cron)
<notice>startproc: execve (/usr/sbin/cron) [ /usr/sbin/cron ], [ CONSOLE=/dev/console TERM=linux SHELL=/bin/sh progress=37 INIT_VERSION=sysvinit-2.85 REDIRECT
=/dev/tty1 COLUMNS=100 PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin vga=0x314 RUNLEVEL=3 resume=/dev/sda4 PWD=/ PREVLEVEL=N LINES=37 HOME=/ SHLVL=2 spla
sh=silent sscripts=46 _=/sbin/startproc DAEMON=/usr/sbin/cron ]
<notice>startproc: execve (/usr/sbin/sshd) [ /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid ], [ CONSOLE=/dev/console TERM=linux SHELL=/bin/sh progress=37 I
NIT_VERSION=sysvinit-2.85 REDIRECT=/dev/tty1 COLUMNS=100 PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin vga=0x314 RUNLEVEL=3 resume=/dev/sda4 PWD=/ PREVLE
VEL=N LINES=37 HOME=/ SHLVL=2 splash=silent sscripts=46 _=/sbin/startproc DAEMON=/usr/sbin/sshd ]
Starting CRON daemondone
Starting SSH daemondone
<notice>startproc: execve (/usr/sbin/powersaved) [ /usr/sbin/powersaved -d -e /etc/powersave.conf -a resmgr -v 3 ], [ CONSOLE=/dev/console TERM=linux SHELL=/b
in/sh progress=37 INIT_VERSION=sysvinit-2.85 REDIRECT=/dev/tty1 COLUMNS=100 PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin vga=0x314 RUNLEVEL=3 resume=/de
v/sda4 PWD=/ PREVLEVEL=N LINES=37 HOME=/ SHLVL=2 splash=silent sscripts=46 _=/sbin/startproc DAEMON=/usr/sbin/powersaved ]
loading ACPI modules (ac battery button fan processor thermal ) Starting powersaved done
Starting Tomcat (/srv/www/tomcat)failed
Starting MySQL..done
<notice>exit status of (tomcat5 sshd running-kernel powersaved mysql fbset cron) is (7 0 0 0 0 0 0)
<notice>start services (apache2)
Starting httpd2 (prefork) <notice>startproc: execve (/usr/sbin/httpd2-prefork) [ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf ], [ CONSOLE=/dev/console
TERM=linux SHELL=/bin/sh get_module_list_done=true progress=44 INIT_VERSION=sysvinit-2.85 REDIRECT=/dev/tty1 COLUMNS=100 get_includes_done=true PATH=/usr/loc
al/sbin:/sbin:/bin:/usr/sbin:/usr/bin vga=0x314 RUNLEVEL=3 resume=/dev/sda4 PWD=/ PREVLEVEL=N LINES=37 HOME=/ SHLVL=2 splash=silent sscripts=46 _=/sbin/startp
roc DAEMON=/usr/sbin/httpd2-prefork ]
done
<notice>exit status of (apache2) is (0)
<notice>start services (kbd)
Loading keymap qwertz/de-latin1-nodeadkeys.map.gz
doneLoading compose table winkeys shiftctrl latin1.adddone
Start Unicode mode
doneLoading console font lat9w-16.psfu -m trivial (K
done<notice>exit status of (kbd) is (0)
<notice>start services (hwscan)
Starting hardware scan on boot<notice>exit status of (hwscan) is (0)
Master Resource Control: runlevel 3 has been reached
Failed services in runlevel 3: tomcat5
Skipped services in runlevel 3: nfs
 
# Required-Start: $local_fs $remote_fs
# X-UnitedLinux-Should-Start: $named $syslog $time
du solltest prüfen ob diese services für Runlevel 3 aktiviert sind ...

dein Startscript wird in Runlevel 3 gestartet, liefert aber einen returncode 7:
Starting Tomcat (/srv/www/tomcat)failed
Starting MySQL..done
<notice>exit status of (tomcat5 sshd running-kernel powersaved mysql fbset cron) is (7 0 0 0 0 0 0)
<notice>start services (apache2)
Starting httpd2 (prefork) <notice>startproc: execve (/usr/sbin/httpd2-prefork) [ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf ]

und danach wird der apache gestartet ... kann es sein das deine Required Liste unvollständig ist und du den apache vergessen hast, der sollte vor dem tomcat gestartet sein ;)

bei runlevel 5 scheinst du nur zufällig Glück zu haben, das der apache vorher gestartet wird
 
Hab ich auch apache hinzugefugt und die Rheienfolge geändert tomcat muss jetzt als letzter starten, funktioniert trozdem nicht
 
luxman schrieb:
Hab ich auch apache hinzugefugt und die Rheienfolge geändert tomcat muss jetzt als letzter starten, funktioniert trozdem nicht

du bist immer etwas knapp in deinen Antworten ;)

wenn du das script änderst, musst du es mit insserv erst entfernen und wieder neu einhängen. Die Änderung am Script alleine bewirkt noch keine Änderung im boot-Ablauf ...
Hast du das gemacht ? man insserv listet dir die Parameter auf.
 
Oben