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
Apache muss beim Booten auf JBoss warten - wie?
-
majortermi
- Userprojekt

- Posts: 916
- Joined: 2002-06-17 16:09
Re: Apache muss beim Booten auf JBoss warten - wie?
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...
Warum man sich an diese Reihenfolge halten sollte...
Re: Apache muss beim Booten auf JBoss warten - wie?
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, das "init"-Skript so zu modifizieren, dass es überprüft, ob zum JBoss eine Verbindung aufgebaut werden kann, und erst dann weitermacht?
-
majortermi
- Userprojekt

- Posts: 916
- Joined: 2002-06-17 16:09
Re: Apache muss beim Booten auf JBoss warten - wie?
Wie wäre es damit per netcat oder telnet zu versuchen eine Verbindung herzustellen, und dann den Rückgabewert auszuwerten?holtsch wrote: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, 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...
Warum man sich an diese Reihenfolge halten sollte...
Re: Apache muss beim Booten auf JBoss warten - wie?
Danke, mit netcat geht das wunderbar:
Skript waitforjboss
Damit geht's genau so, wie ich es will...
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..."