Forums

RSS RSS
RE: Liferay unter Debian / Problem mit init.d Script / Server start beim Bo Flat View
Threads
Liferay unter Debian / Problem mit init.d Script / Server start beim Booten
linux tomcat server debian init init.d runlevel shellscript
6/19/08 12:48 AM
Hallo Community,

ich habe mit folgenden Problem zu kämpfen und hoffe das mir vielleicht jemand weiterhelfen kann.

Ich habe nach langen Kampf mit dem System es endlich geschafft Liferay unter Debian zum Laufen zu bringen.
Jedoch habe ich nun noch ein Problem. Undzwar habe ich ein Shellscript erstellt (Google half mir) welches ich zum
Starten und Beenden des Liferay-Services nutzen kann (Init.d Start|Stop|Restart aufruf der shutdown.sh und startup.sh).
Dieses Script funktioniert wunderbar. Der Liferay Server kann damit gestartet und beendet werden.

Wenn ich jetzt jedoch das Script in den Init-Regel des Runlevel 6 eintrage, wird zwar mein Script ausgeführt (Boot-Log zeigts an) aber der Server wird nicht ordnungsgemäß gestartet

Starte ich mein Script dann wieder in der Bash funktioniert alles. Weiß jemand Rat voran das Liegen kann?

Folgende Fehlerquellen habe ich geprüft und konnte ich ausschließen:
  • JRE_HOME wird gesetzt und ist abrufbar
  • Tomcat server wird vorher gestartet und ist verfügbar
  • Script wird als letztes in Runlevel6 ausgeführt


Freue mich über Hinweise oder Tipps zur Beseitigung des Problem.

Vielen Dank.
Flag Flag
Versuch das ganz doch mal im runlevel 2-5 : )

0 halt, hält das System an, ohne es neu zu starten.

1 bringt das System in den Single-User-Modus. Es werden nur die minimal benötigten Dienste gestartet, Netzwerkschnittstellen sind nicht aktiviert. Dieser Modus ist für Wartungsarbeiten gedacht.

2 bis 5 Multiuser Modus, in diesen Runleveln wird üblicherweise gearbeitet. Ein unverändertes Debian System läuft im Normalbetrieb im Runlevel 2.

6 Dieser Runlevel dient zum Neustarten (Reboot) des Systems.

7 bis 9 Diese Runlevel werden nicht verwendet. init ist aber in der Lage, diese zu benutzen, wenn vom Administrator entsprechende Skripte und Verzeichnisse angelegt werden.

S und s bringen das System in den Single-User-Modus. Siehe auch Runlevel 1.

a bis c So genannte „ondemand“-Runlevel. Siehe inittab.
Flag Flag
Kurze Verständnisfrage: Mein Script, namens liferay.sh, habe ich mit folgenden Befehl in die Init geholt

sudo update-rc.d liferay defaults 99


In welchem Runlevel wird das Script dann aktiviert?

Der Server bootet natürlich in Runlevel 2 wie du bereits sagtes.

Was mich dabei wundert ist das der Service laut var/log/boot Ordnungsgemäß als letzter Service gestartet wurde.

Vielleicht hilft auch mal ein Auszug aus dem Script, welches so ausschaut:


#!/bin/bash
#
# Startup script for Liferay
#
# description: Starts and stops the liferay portal.
# processname: liferay (java)
# pidfile: /var/run/liferay.pid

export JRE_HOME="/usr/lib/jvm/java-1.5.0-sun"
echo "JRE HOME IS" $JRE_HOME

case $1
in
start)
echo "Starte Liferay-Service"
sh /srv/liferay/bin/startup.sh
;;

stop)
echo "Stoppe Liferay-Servie"
sh /srv/liferay/bin/shutdown.sh
;;

restart)
echo "Liferay-Service wird neu gestartet"
sh /srv/liferay/bin/shutdown.sh
sh /srv/liferay/bin/startup.sh
;;
*)

echo "Usage: /etc/init.d/liferay start|stop|restart"
;;
esac

exit 0

by Julien Cornouiller
Flag Flag
Hallo Leute,

son langsam komme ich der Sacher näher. Ich habe gerade noch einmal die Logfiles verglichen die erstellt werden beim Starten während des Bootvorgangs und das manuelle Starten. Folgendes Problem besteht ->

INFO: Port busy 8009 java.net.BindException: Address already in use
Jun 19, 2008 1:16:42 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8010
Jun 19, 2008 1:16:42 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=1 time=0/42 config=null
Jun 19, 2008 1:16:42 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Jun 19, 2008 1:16:42 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 44607 ms
Jun 19, 2008 1:16:42 PM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:363)
at org.apache.catalina.startup.Catalina.await(Catalina.java:616)
at org.apache.catalina.startup.Catalina.start(Catalina.java:576)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Jun 19, 2008 1:16:42 PM org.apache.coyote.http11.Http11BaseProtocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
Jun 19, 2008 1:16:43 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina

13:16:43,678 INFO [[/tunnel-web]:647] Destroying Spring FrameworkServlet 'SpringServlet'
13:16:43,703 INFO [[/tunnel-web]:647] Closing Spring root WebApplicationContext
13:16:52,320 INFO [ThemeHotDeployListener:116] Unregistering themes for liferay-noir-theme
13:16:52,325 INFO [ThemeHotDeployListener:152] Themes for liferay-noir-theme unregistered successfully
13:16:52,410 INFO [ThemeHotDeployListener:116] Unregistering themes for liferay-jedi-theme
13:16:52,411 INFO [ThemeHotDeployListener:152] Themes for liferay-jedi-theme unregistered successfully
log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.
Jun 19, 2008 1:16:54 PM org.apache.coyote.http11.Http11BaseProtocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
Jun 19, 2008 1:16:54 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Failed shutdown of Apache Portable Runtime


Kann mir da jemand einen ansatz zu geben? Übrigens in der server.xml sind die Ports für das ajp13 richtig gesetzt (auf 8009)
Wenn ich Liferay manuel starte ist ajp13 auch listining auf 8009.
Flag Flag
Hallo, Mathias,

offensichtlich ist das TCP Port 8009 schon in der Benutzung von einer sonstigen service, sonst wuerde nicht diese Fehlermeldung kommen.

was zeigt

netstat -a -n -p

- welches Prozess hat dieses Port fuer sich reserviert?

Du musst entweder das Port freimachen, damit Du die andere Service abschaltest, oder kannst in der Datei conf/server.xml das Port 8009 in ein anderes aendern und dann sollte es hoffentlich starten...

Gruss, Artur
Flag Flag
Hallo Artur,

das gleiche habe ich mir auch schon gedacht. doch leider kann ich nicht ausfindig machen welcher Prozess den Port beim boot Vorgang blockiert!? Vor allem weil er kurz danach ja auch wieder zur Verfügung steht. Leider muss ich die Woche wieder außer Haus, sodass ich mich momentan nicht mit der Thematik beschäftigen kann. Sobald ich dran bin werde ich euch aber auf dem laufenden halten.

Mfg Mathias

Auszug aus netstat


tcp6 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 2880/java
tcp6 0 0 :::8009 :::* LISTEN 2880/java
tcp6 0 0 :::8080 :::* LISTEN 2900/apache2
tcp6 0 0 :::8180 :::* LISTEN 2880/java
Flag Flag
Hallo,

wird da nur IPv6 benutzt oder auch klasisches IP? Dann koennte man dort auch sehen einige Zeilen nur mit "tcp" am Anfang...

Falls das Port nur auf eine Weile am Anfang blockiert wird (was mir ziemlich merkwuerdig vorkommt), dann koennte man es doch sehen, wenn man

netstat -a -n -p > /root/netstat.txt

in das catalina.sh oder sonstiges Script zum start des Dienstes einfuegt....

Gruss, Artur
Flag Flag