Archiv verlassen und diese Seite im Standarddesign anzeigen : Kann tomcat nicht als service hinzufügen
Hallo,
habe eben den Tomcat Server zum Laufen bekommen und wollte ihn jetzt anhand einiger Anleitungen aus dem Internet als service mit einem bestimmten Runlevel installieren, damit er automatisch beim Booten startet.
Ich benutze Suse 10.2 und habe eine Datei namen 'tomcat' in /etc/init.d/ abgelegt.
In der Datei 'tomcat' steht folgendes:
#!/bin/sh
# Tomcat startup script
RUN_AS_USER=tomcat
START_TOMCAT="$CATALINA_HOME/bin/catalina.sh start"
STOP_TOMCAT="$CATALINA_HOME/bin/catalina.sh stop"
#. /etc/environment
chown ${RUN_AS_USER}. /opt/tomcat/logs/*
start() {
echo "Starting tomcat: "
if [ $USER != $RUN_AS_USER ]; then
su -p $RUN_AS_USER ${START_TOMCAT}
else
$START_TOMCAT
fi
echo "done."
}
stop() {
echo "Shutting down tomcat: "
if [ $USER != $RUN_AS_USER ]; then
su -p $RUN_AS_USER ${STOP_TOMCAT}
else
$STOP_TOMCAT
fi
echo "done."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 8
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac
exit 0
Dann habe ich mit
chkconfig --add tomcat
und
chkconfig --level 5 tomcat on
dem System hinzugefügt.
Wenn ich in den Runlevel-Editor schaue, dann steht auch der Service tomcat drin.
Möchte ich jetzt aber mit
service tomcat start
Den tomcat starten, dann erhalte ich immer folgende Fehlermeldung:
env: /etc/init.d/tomcat: No such file or directory
Derweile liegt die Datei 'tomcat' aber definitiv im Verzeichnis /etc/init.d/
Was hab ich falsch gemacht? Danke schonmal für Antworten!
b3ll3roph0n
03.10.07, 14:01
Was hab ich falsch gemacht? Danke schonmal für Antworten!Dir bzw. deinem Init-Script fehlt der passende Header.
Siehe: http://linuxforen.de/forums/showpost.php?p=1501695&postcount=21
So ich hab die /etc/init.d/tomcat nun so geändert:
#!/bin/sh
#
# /etc/init.d/tomcat
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $syslog $remote_fs
# Should-Start: $time ypbind sendmail
# Required-Stop: $syslog $remote_fs
# Should-Stop: $time ypbind sendmail
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Tomcat Server
# Description: Script to start and stop the Tomcat Server
### END INIT INFO
RUN_AS_USER=tomcat
START_TOMCAT="$CATALINA_HOME/bin/catalina.sh start"
STOP_TOMCAT="$CATALINA_HOME/bin/catalina.sh stop"
#. /etc/environment
chown ${RUN_AS_USER}. /opt/tomcat/logs/*
start() {
echo "Starting tomcat: "
if [ $USER != $RUN_AS_USER ]; then
su -p $RUN_AS_USER ${START_TOMCAT}
else
$START_TOMCAT
fi
echo "done."
}
stop() {
echo "Shutting down tomcat: "
if [ $USER != $RUN_AS_USER ]; then
su -p $RUN_AS_USER ${STOP_TOMCAT}
else
$STOP_TOMCAT
fi
echo "done."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 8
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac
exit 0
dann habe ich nochmal
chkconfig --add tomcat
chkconfig --level 5 tomcat on
ausgeführt. Jedoch bekomme ich mit service tomcat start immernoch dieselbe Fehlermeldung.
b3ll3roph0n
03.10.07, 15:59
Ist das Script ausführbar?
ls -las /etc/init.d/tomcat
Was sagt überhaupt
chkconfig -l tomcat
ls -las /etc/init.d/tomcat
sagt folgendes:
4 -rwxrwxrwx 1 root users 1240 Oct 3 14:45 /etc/init.d/tomcat
und
chkconfig -l tomcat
sagt:
tomcat 0:off 1:off 2:off 3:off 4:off 5:on 6:off
b3ll3roph0n
03.10.07, 17:13
Du solltest vielleicht auch die Variable CATALINA_HOME in dem Script setzen.
Du solltest vielleicht auch die Variable CATALINA_HOME in dem Script setzen.
Ich hab jetzt mal den absoluten Pfad zu dem Start- und Stopskript angegeben (Ohne Variablen).
Funktioniert aber immernoch nicht
b3ll3roph0n
03.10.07, 19:16
Versuchs mal so:
(Wichtig ist das su -c und das Quoten des Befehls.)
[...]
RUN_AS_USER="tomcat";
TOMCAT_BIN="/foo/bar/bin/catalina.sh";
[...]
start() {
echo "Starting tomcat: "
if [ "${USER}" != "${RUN_AS_USER}" ]; then
su -m ${RUN_AS_USER} -c "${TOMCAT_BIN} start";
else
${TOMCAT_BIN} start;
fi;
echo "done.";
};
[...]
catalina.sh ist auch ausführbar?
Der User tomcat besitzt auch genügend Rechte um das Script auszuführen?
Btw: für das Init-Script reichen die Berechtigungen 0755 und als Eigentümer root:root.
0777 ist komplett unnötig!
Versuchs mal so:
(Wichtig ist das su -c und das Quoten des Befehls.)
[...]
RUN_AS_USER="tomcat";
TOMCAT_BIN="/foo/bar/bin/catalina.sh";
[...]
start() {
echo "Starting tomcat: "
if [ "${USER}" != "${RUN_AS_USER}" ]; then
su -m ${RUN_AS_USER} -c "${TOMCAT_BIN} start";
else
${TOMCAT_BIN} start;
fi;
echo "done.";
};
[...]
catalina.sh ist auch ausführbar?
Der User tomcat besitzt auch genügend Rechte um das Script auszuführen?
Btw: für das Init-Script reichen die Berechtigungen 0755 und als Eigentümer root:root.
0777 ist komplett unnötig!
Hallo,
danke erstmal für deine bisherigen Mühen. Nachdem ich deine letzten Hinweise alle umgesetzt hatte, dachte ich, dass Problem sei nun behoben. Denn catalina.sh war z.B. nur für root ausführbar.
Hab aber nun den gesamten Tomcat-Ordner für den user tomcat ausführbar gemacht. Zudem hab ich catalina.sh die Rechte 755 gegeben.
Ich hab die Änderungen am Startscript vorgenommen. An der Fehlermeldung hat sich allerdings nichts geändert!
Meine /etc/init.d/tomcat sieht jetzt so aus:
#!/bin/sh
#
# /etc/init.d/tomcat
#
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $syslog $remote_fs
# Should-Start: $time ypbind sendmail
# Required-Stop: $syslog $remote_fs
# Should-Stop: $time ypbind sendmail
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Tomcat Server
# Description: Script to start and stop the Tomcat Server
### END INIT INFO
RUN_AS_USER=tomcat
#START_TOMCAT="/etc/apache-tomcat-5.5.25/bin/startup.sh"
#STOP_TOMCAT="/etc/apache-tomcat-5.5.25/bin/shutdown.sh"
TOMCAT_BIN="/etc/apache-tomcat-5.5.25/bin/catalina.sh"
#. /etc/environment
chown ${RUN_AS_USER}. /opt/tomcat/logs/*
start() {
echo "Starting tomcat: "
if [ "${USER} != "${RUN_AS_USER}" ]; then
su -m ${RUN_AS_USER} -c "${TOMCAT_BIN} start";
else
${TOMCAT_BIN} start;
fi
echo "done."
}
stop() {
echo "Shutting down tomcat: "
if [ "${USER} != "${RUN_AS_USER} ]; then
su -m "${RUN_AS_USER} -c "${TOMCAT_BIN} start";
else
${TOMCAT_BIN} stop;
fi
echo "done."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 8
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac
exit 0
Grüße
b3ll3roph0n
04.10.07, 12:02
Setz bitte mal
set -x an den Anfang (natürlich nach #!/bin/sh) des Scriptes und starte dieses dann mal.
Hab ich erledigt, aber leider auch kein Erfolg.
b3ll3roph0n
04.10.07, 12:13
Hab ich erledigt, aber leider auch kein Erfolg.Das soll auch keinen "Erfolg" bringen, sondern eine detailiertere Fehlermeldung/Ausgabe des Scriptes.
Hallo,
braucht der Tomcat nicht noch eine Variable wie JAVA_HOME mit dem Pfad zu Java?
Grüße, LP
Das soll auch keinen "Erfolg" bringen, sondern eine detailiertere Fehlermeldung/Ausgabe des Scriptes.
welche Logfile muss ich mir denn da anzeigen lassen?
@tomi: wenn es nicht so dringend mit dem Tomcat ist, kann ich am Mo. in der Arbeit nachschauen: hatte mal mir ein init-Script von RH genommen und angepasst; den könnte ich hochladen.
jup, so dringend ist das nicht.
Wäre nett, wenn du mal nach dem Script schaust. Danke schonmal
b3ll3roph0n
05.10.07, 11:19
welche Logfile muss ich mir denn da anzeigen lassen?Gar keines.
set -x einfügen, das Script starten
/etc/init.d/tomcat start und Ausgaben posten.
Und den Kommentar von Luzi P beachten ...
Werden die entsprechende JAVA-Umgebungsvariablen gesetzt?
Startet das die catalina.sh überhaupt (ohne das Startscript)?
Nun ist es soweit... Die Suche letzte Woche in den Beiträgen hat irgendwie nichts ergeben, obwohl ich genau wusste: das Script ist doch schon mal uploaded worden. Heute beim Uploadversuch weist mich die Forum-SW daraf hin (http://www.linuxforen.de/forums/showpost.php?p=1108800&postcount=5).
Hallo,
sorry erstmal, dass ich mich erst zwei Wochen später wieder melde. Erstmal vielen Dank an temir für dein Script.
Hab das Script eingefügt, und den Pfad zum TOMCAT_HOME gesetzt. Die Umgebungsvariablen wie $JAVA_HOME stimmt auch. Den Nutzer 'tomcat' (in Gruppe 'tomcat') gibt es ebenso.
Den alten Dienst hab ich entfernt und dann nochmal mit chkconfig --add tomcat neu in den Runlevel eingetragen.
Nur leider ist das Ergebnis immernoch dasselbe. Erhalte immernoch diese Fehlermeldung und der Dienst startet nicht.
Wenn ich catalina.sh ausführe, dann kann ich den Tomcat starten und stoppen. Also daran sollte es nicht liegen.
Das
set -x hab ich mal aktiviert und dann
/etc/init.d/tomcat start ausgeführt.
Dann erhalte ich folgende Fehlermeldung:
-bash: /etc/init.d/tomcat: /bin/sh^M: bad interpreter: No such file or directory
Leider kann ich diese Fehlermeldung nicht interpretieren, aber vielleicht kann es mir einer sagen und evtl. haben wir dann auch den Fehler.
Danke schonmal
mach mal ein dos2unix über die Datei - vermutlich hast Du die Datei auf einem Windows-System erstellt und dann mit ftp oder scp hochgeladen?
mach mal ein dos2unix über die Datei - vermutlich hast Du die Datei auf einem Windows-System erstellt und dann mit ftp oder scp hochgeladen?
Jap, hab es in Windows erstellt und genau das war dann auch der Fehler ;-)
Wusste nicht, dass es dadurch zu Problemen kommen kann. Aber vielen Dank jedenfalls, jetzt läufts ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.