Wie starte ich Apache Tomcat beim Booten unter Mac OS X?


16

Ich habe festgestellt, dass es keine vollständige Anleitung für die Installation von Tomcat unter OS X gibt, die das Einrichten für den Start zum Startzeitpunkt vorsieht.

Hier ist die Kurzanleitung:

  • Installieren Sie Macports
    • suport port upgrade
    • sudo port upgrade outdated.
  • sudo port install tomcat6, oder wenn Sie eine andere Versionsprüfung wünschen port list|grep tomcat
  • config ist jetzt bei: /opt/local/share/java/tomcat6/conf
  • Startskript: /opt/local/share/java/tomcat6/bin/tomcatctl

    cp /opt/local/share/java/tomcat6/conf/tomcat-users.xml.sample /opt/local/share/java/tomcat6/conf/tomcat-users.xml nano / opt / local / share / java / tomcat6 /conf/tomcat-users.xml

  • ... Artikel überprüfen

Aber mir fehlt der Teil, wie man es als echten Dienst / Daemon laufen lässt: beim Systemstart und optional, um es neu zu starten, wenn es abstürzt.


Warum MacPorts verwenden, wenn es offizielle Binärdateien gibt? Ich hasse das Vertrauen, das einige Mac-Benutzer in MacPorts haben, besonders wenn die meisten MacPorts-Pakete veraltet sind und Sie sich damit Sicherheitslücken öffnen.
— Cromulent

Simon, dies ist erforderlich, da macports auch ein Paketmanager ist, sodass Sie auf diese Weise viele Probleme bewältigen können. Außerdem können Sie Tomcat ganz einfach aktualisieren.
— Sorin

Antworten:


12

Dies dient zur Installation von tomcat als Daemon auf Port 8080, aktiviert aber auch Port 80 mithilfe einer Firewall-Umleitung. Es wurde unter Mac OS 10.6 getestet, sollte aber auch mit 10.5 funktionieren.

Bearbeiten /opt/local/share/java/tomcat6/conf/server.xmlund fügen Sie proxyport="80" URIEncoding="UTF-8"innen <Connector .../>.

Führen Sie für die Weiterleitung von Port 80 nach 8080 diese Zeile aus und fügen Sie sie hinzu /bin/catalina.sh.

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in

Weisen Sie dem Java-Computer genügend Speicher zu, oder Sie haben später möglicherweise Probleme. Innerhalb/opt/local/share/java/tomcat6/conf/local.env

export JAVA_JVM_VERSION=CurrentJDK
export JAVA_OPTS="-Xmx3000M -Xms3000M -Djava.awt.headless=true -Duser.timezone=UTC"

In meinem Beispiel habe ich ~ 3Gb oder RAM zugewiesen, aber Sie können dies anpassen, setzen Sie auf keinen Fall weniger als 1 GB ein, wenn Sie hudsonin tomcat arbeiten.

Als Dienst ausführen

Führen Sie nano /Library/LaunchDaemons/org.apache.tomcat.plistden folgenden Code aus und fügen Sie ihn ein:

<?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>Label</key>
    <string>org.apache.tomcat</string>
    <key>ProgramArguments</key>
    <array>
            <string>/opt/local/share/java/tomcat6/bin/catalina.sh</string>
            <string>run</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Stellen Sie sicher, dass launchd Ihren neuen Daemon erkannt hat, falls nicht, starten Sie ihn neu :(

launchctl list|grep tomcat

Starten Sie Tomcat manuell.

launchctl start org.apache.tomcat

Wenn der Status etwas anderes als ist -, haben Sie ein Problem und sollten es untersuchen: launchctl log level debugund überprüfen /var/log/system.log.


1
Könnte mich sein , wie ich auf Mac (OS X 10.8.2) neu bin , aber ich hatte zu tun: sudo launchctl Last -w /Library/LaunchDaemons/org.apache.tomcat.plist , um es zu starten zu bekommen
— Steve

1

Sie müssen tomcat als ein Element registrieren, das beim Start ausgeführt werden muss. Unter Mac OS wird dies von launchd ( http://developer.apple.com/macosx/launchd.html ) erledigt . Ich weiß nicht, ob launchd den automatischen Neustart unterstützt, aber ansonsten sollten Sie sich etwas wie supervisord ansehen ( http://supervisord.org/ ).


Ja, launchd hat eine Keepalive-Option, sowohl als yes / no als auch mit vier optionalen Bedingungen.
— Flumignan

1

Für den Start von Snow Leopard beim Start habe ich eine plist-Datei in / Library / LaunchDaemons / erstellt. Sie können den Dienst zum Testen starten / stoppen, indem Sie "launchctl load org.macports.tomcat6.plist" oder "launchctl unload org.macports.tomcat6.plist" eingeben. Sobald Sie es funktioniert haben, starten Sie neu, um den Autostart beim Booten zu beweisen.


sh-3.2# more org.macports.tomcat6.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>Label</key><string>org.macports.tomcat6</string>
<key>ProgramArguments</key>
<array>
        <string>/opt/local/bin/daemondo</string>
        <string>--label=tomcat6</string>
        <string>--start-cmd</string>
        <string>/opt/local/bin/tomcatctl</string>
        <string>start</string>
        <string>;</string>
        <string>--pid=fileclean</string>
        <string>--pidfile</string>
        <string>/opt/local/share/java/tomcat6/logs/tomcat6.pid</string>
</array>
<key>Debug</key><false/>
<key>Disabled</key><false/>
<key>OnDemand</key><false/>
<key>RunAtLoad></key><true/>
</dict>
</plist>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.