Für die langfristige Verwendung sollten Sie konfigurieren, dass Crowd automatisch neustartet, wenn es das Betriebssystem tut. Auf Mac OS X verwaltet das Systemstart-Programm Launchd die laufenden Prozesse – Daemons oder Dienste.

Apple bietet eine Einführung in Launchd an. Unten erläutern wir Ihnen, wie Sie Launchd verwenden, um Crowd automatisch auf Mac OS X zu starten, wenn Tomcat ausgeführt wird.


Launchd mit Tomcat verwenden

Die Crowd-Distribution (nicht EAR-WAR) kommt mit Tomcat an Board. Es gibt eine Verschiedenheit zwischen der erwarteten Verhaltensweise eines Daemons von Launchd und der Funktionsweise der Standard-Start-Skripte für Tomcat:

  • Launchd von OS X erwartet, dass der von ihm gestartete Prozess für immer läuft, aber "catalina.sh start" startet die JVM, um Tomcat auszuführen und beendet danach.
  • Tomcat bietet "catalina.sh stop" an, um Tomcat ordentlich herunterzufahren und das tut er indem er mit einem Sockel verbindet, auf dem Tomcat lauscht, aber Launchd dagegen stoppt die Daemons, indem er Ihnen ein Signal sendet, welches die Prozesse unverzüglich killt, wenn keine spezifische Handhabung inkludiert ist.

Sie werden ein Wrapper Shell Skript und eine Einstellungsliste benötigen, um Launchd mit Tomcat zum Laufen zu bringen.



1. Schritt: Hinzufügen eines Wrapper Shell Skripts

Fügen Sie das folgende Wrapper Shell Skript zu $CATALINA_HOME/bin hinzu:

LAUNCHD_WRAPPER.SH

#!/bin/bash

function shutdown()
{
        date
        echo "Shutting down Crowd"
        $CATALINA_HOME/bin/catalina.sh stop
}

date
echo "Starting Crowd"
export CATALINA_PID=/tmp/$$

# Uncomment to increase Tomcat's maximum heap allocation
# export JAVA_OPTS=-Xmx512M $JAVA_OPTS

. $CATALINA_HOME/bin/catalina.sh start

# Allow any signal that would kill a process to stop Tomcat
trap shutdown HUP INT QUIT ABRT KILL ALRM TERM TSTP

echo "Waiting for `cat $CATALINA_PID`"
wait `cat $CATALINA_PID`

Das obige Shell Skript startet Tomcat und wartet dann darauf, dass der Prozess vervollständigt wird, sodass es für Launchd "okay" ist, dass Tomcat immer noch läuft. Das Skript installiert außerdem einen Signal-Handler, der die shutdown() Funktion aufruft, um Tomcat ordentlich herunterzufahren, sobald Launchd das Skript signalisiert.

Sie können dieses Skript manuell ausprobieren: Starten Sie das Skript, beobachten Sie den Start von Crowd und tippen Sie dann ctrl-C ein und sehen Sie zu wie Crowd ordentlich herunterfährt. (Beachten Sie, dass es nicht ordentlich herunterfährt, wenn Tomcat noch nicht gestartet ist. Es nimmt einige Sekunden in Anspruch, bis Tomcat am Shutdown-Sockel lauscht.)



2. Schritt: Fügen Sie eine Launchd Einstellungsliste hinzu

Die Launchd Einstellungsliste (.plist) sagt Launchd wie es Tomcat zu starten hat.

Fügen Sie die folgende Plist-Datei zu /Library/LaunchDaemons hinzu, welches der systemweite Ort für Dienste ist, die nicht Teil der Basis-OS X sind:

CROWD.PLIST

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Disabled</key>
        <false/>
        <key>EnvironmentVariables</key>
        <dict>
                <key>CATALINA_HOME</key>
                <string>/Users/myname/conf/crowd-x.x.x</string>
                <key>JAVA_HOME</key>
                <string>/Library/Java/Home</string>
        </dict>
        <key>Label</key>
        <string>com.atlassian.crowd</string>
        <key>OnDemand</key>
        <false/>
        <key>ProgramArguments</key>
        <array>
                <string>/Users/myname/conf/crowd-x.x.x/bin/launchd_wrapper.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>ServiceDescription</key>
        <string>Crowd</string>
        <key>StandardErrorPath</key>
        <string>/Users/myname/conf/crowd-x.x.x/logs/launchd.stderr</string>
        <key>StandardOutPath</key>
        <string>/Users/myname/conf/crowd-x.x.x/logs/launchd.stdout</string>
        <key>UserName</key>
        <string>root</string>
</dict>
</plist>

Hinweise:

  1. Ersetzen Sie "/Users/myname/conf/crowd-x.x.x" mit dem Pfad zu Ihrer Crowd-Installation. Die Zeile erscheint vier mal im obigen Skript.
  2. JAVA_HOME benutzt das Standard-JDK. Auf der OS X Version 10.4.4 ist das Standard-JDK 1.4.2. Sie müssen diesen Wert ändern, wenn Sie eine andere Java-Version verwenden möchten. Wenn Sie zum Beispiel das JDK 1.5 benutzen wollen, müssen Sie JAVA_HOME auf /System/Library/Frameworks/JavaVM.framework/Versions/1.5 abändern.
  3. Im obigen Skript haben wir "root" als UserName definiert. Falls notwendig, ändern Sie den UserName in den Benutzer um, mit dem Sie Tomcat ausführen möchten.



Crowd manuell starten und stoppen

Um Crowd manuell zu starten und zu stoppen, verwenden Sie die folgenden Befehle:

  • Starten:
    cd /Library/LaunchDaemons
    sudo launchctl load -w crowd.plist
  • Stoppen:
    cd /Library/LaunchDaemons
    sudo launchctl unload -w crowd.plist



Problembehebung

  • Stellen Sie sicher, dass die launch_wrapper.sh sowie die crowd.plist Dateien die notwendigen Privilegien besitzen.
  • Überprüfen Sie die Konsolenprotokolle und Protokolldateien auf jegliche Anomalien.




Crowd Dokumentation Übersicht:



Crowd Doku

Diese Seite wurde zuletzt am 25.04.2024 geändert.