Apache muss beim Booten auf JBoss warten - wie?

Bash, Shell, PHP, Python, Perl, CGI
Post Reply
holtsch
Posts: 19
Joined: 2003-04-04 10:01
Contact:
 

Apache muss beim Booten auf JBoss warten - wie?

Post by holtsch »

Ich verwende JBoss/Jetty (application server) mit Apache, verbunden über mod_jk. Dabei tritt folgendes Problem auf: wenn Apache gestartet wird, bevor JBoss mit seinem Startup durch ist (was ca. 1 Minute dauert), dann funktioniert die Verbindung über mod_jk nicht - man darf Apache also erst starten, wenn JBoss läuft.

Wenn ich JBoss vor Apache in init.d/rc3.d eintrage bringt das gar nichts - vermutlich, weil das JBoss-Startskript natürlich nicht weiß, wann JBoss fertig ist und die Skripten offensichtlich sowieso parallel ausgeführt werden.

Als temporären workaround habe ich jetzt mal beim apache Startup Skript sleep 1m eingefügt. So funktioniert es - die Lösung erscheint mir aber nicht besonders sauber (z.B. apache restart => erstmal 1 Minute warten, obwohl JBoss ja sowieso schon läuft).

Gibt's da eine schlauere Lösung?

liebe Grüße,
david
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: Apache muss beim Booten auf JBoss warten - wie?

Post by majortermi »

Wie wäre es damit, das "init"-Skript so zu modifizieren, dass es überprüft, ob zum JBoss eine Verbindung aufgebaut werden kann, und erst dann weitermacht?
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
holtsch
Posts: 19
Joined: 2003-04-04 10:01
Contact:
 

Re: Apache muss beim Booten auf JBoss warten - wie?

Post by holtsch »

Wie wäre es damit, das "init"-Skript so zu modifizieren, dass es überprüft, ob zum JBoss eine Verbindung aufgebaut werden kann, und erst dann weitermacht?
Cool! Das wäre natürlich die sauberste Lösung! Kann man das in einem Shell Skript (bash) einfach lösen? Wenn ja, wie? (oder: wo steht wie's geht?)
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: Apache muss beim Booten auf JBoss warten - wie?

Post by majortermi »

holtsch wrote:
Wie wäre es damit, das "init"-Skript so zu modifizieren, dass es überprüft, ob zum JBoss eine Verbindung aufgebaut werden kann, und erst dann weitermacht?
Cool! Das wäre natürlich die sauberste Lösung! Kann man das in einem Shell Skript (bash) einfach lösen? Wenn ja, wie? (oder: wo steht wie's geht?)
Wie wäre es damit per netcat oder telnet zu versuchen eine Verbindung herzustellen, und dann den Rückgabewert auszuwerten?
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
holtsch
Posts: 19
Joined: 2003-04-04 10:01
Contact:
 

Re: Apache muss beim Booten auf JBoss warten - wie?

Post by holtsch »

Danke, mit netcat geht das wunderbar:

Skript waitforjboss

Code: Select all

#!/bin/bash
netcat -v -z 127.0.0.1 8009 &> /dev/null
while [  "$?" = "1"  ];
do
  echo "Waiting for AJP13-server for mod_jk to come up"
  sleep 5s
  netcat -v -z 127.0.0.1 8009 &> /dev/null
done
echo "AJP13 server is up and running, moving on..."
Damit geht's genau so, wie ich es will...
Post Reply