JBoss AS unter Linux automatisch beim Booten starten
Ich habe eine kleine Weile gebraucht um eine kleine Anleitung für ein Startscript zu finden, dass den JBoss AS unter Linux beim Booten automatisch startet. Der Platz an dem ich den richtigen Hinweis schließlich gefunden habe war auch sehr einleuchtend und ich hätte auch direkt drauf kommen können: das JBoss Wiki.
Damit andere nicht auch so lange suchen wie ich und ich diese Info selbst garantiert auch noch einmal benötige soll dieser Artikel hier dienen.
Noch als Information vorab: Bei mir liegt der JBoss AS im Verzeichnis /opt und ich habe den Namen des ausgepackten JBoss AS (jboss-4.2.2.GA.zip) in jboss422 umbenannt. Somit bezieht sich dieses Startscript auf den JBoss mit dem Verzeichnis /opt/jboss422.
Damit der JBoss nicht unter dem User ‘root’ läuft empfiehlt es sich einen eigenen User ‘jboss’ anzulegen und mit diesem den JBoss zu starten. Dazu muss diesem User der JBoss auch gehören:
# User 'jboss' hinzufügen useradd jboss # Diesem User das JBoss AS Verzeichnis geben chown -R jboss:users /opt/jboss422/
Hier das eigentliche Startscript welches bei mir den Namen jboss422 vergeben bekommen hat und unter den meisten Linux Distributionen im Verzeichnis /etc/init.d/ abgelegt wird. Wie schon erwähnt liegt mein JBoss 4.2.2 im Verzeichnis /opt/jboss422, so dass dieser Pfad auch im Startscript verwendet wird:
#! /bin/sh start(){ echo "Starting jboss.." sudo -u jboss bash -c "/opt/jboss422/bin/run.sh --host 0.0.0.0 > /dev/null 2> /dev/null &" #/opt/jboss422/bin/run.sh --host 0.0.0.0 > /dev/null 2> /dev/null & } stop(){ echo "Stopping jboss.." sudo -u jboss bash -c '/opt/jboss422/bin/shutdown.sh -S &' #/opt/jboss422/bin/shutdown.sh -S & } restart(){ stop # give stuff some time to stop before we restart sleep 60 # protect against any services that can't stop before we restart (warning this kills all Java instances running as 'jboss' user) sudo -u jboss killall java start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo "Usage: jboss {start|stop|restart}" exit 1 esac exit 0
Hat man für den ersten Test keinen User ‘jboss’ oder möchte den JBoss unter dem User ‘root’ laufen lassen einfach die Zeile sudo -u jboss .. mit # auskommentieren und die darunter gelistete Zeile einkommentieren.
Jetzt fehlt noch das Hinzufügen des Startscriptes zu dem Bootprozess, so dass der JBoss mit jedem Serverstart auch automatisch gestartet wird. Der Teil ist optional, denn vielleicht möchte der ein oder andere den JBoss immer per Hand starten.
Unter Suse wird das Startscript mit dem Kommando chkconfic <scriptname> on hinzufügen:
chkconfig jboss422 on
Erstellt automatisch die Symlinks und aktiviert das Startscript
Unter Debian wie folgt:
update-rc.d jboss422 defaults
Erstellt automatisch die notwendigen Symlinks.
Wenn du Fragen oder Anregungen zum Post hast, dann hinterlasse doch ein Kommentar oder wenn du weiterhin Artikel von Javathreads lesen möchtest, dann abonniere den RSS Feed und sehe direkt in deinem Feed Reader die nächsten Artikel.
Ähnliche Artikel, die dich interessieren könnten:
Kommentare
Sehr interessant. Habe ich mir direkt gebookmarkt und probiere das demnächst mal auf meinem Server aus. Klingt jedenfalls sehr vielversprechend.
Wenn ich es getestet bzw. im Einsatz habe werde ich hier nochmal darüber berichten.
Villeicht ist jemmand auch an einem ähnlichen Tutorial interesseirt. Jboss 5.1.0 auf debian installieren:
http://alexander.holbreich.org/2010/01/java-jboss-debian-linux/














Ich setzte beim Start von JBoss seit Jahren auf den Java Service Wrapper (http://wrapper.tanukisoftware.org), der beliebige Java Programme als Daemon Prozess startet.
Der Service Wrapper startet JBoss automatisch neu, wenn die VM abstürtzt oder wenn konfigurierte Exceptions auftreten, zB eine OutOfMemoryException.