Jak uruchomić Apache Tomcat podczas rozruchu w systemie Mac OS X?

16

Zauważyłem, że nie ma pełnego przewodnika instalacji tomcat na OS X, który obejmowałby skonfigurowanie go do uruchamiania w czasie uruchamiania.

Oto krótki przewodnik:

  • zainstaluj Macports
    • suport port upgrade
    • sudo port upgrade outdated.
  • sudo port install tomcat6lub jeśli chcesz sprawdzić inną wersję port list|grep tomcat
  • config jest teraz na: /opt/local/share/java/tomcat6/conf
  • skrypt startowy: /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

  • ... sprawdź artykuł

Ale brakuje mi części dotyczącej tego, jak sprawić, by działał jako prawdziwa usługa / demon: podczas uruchamiania systemu i opcjonalnie, aby uruchamiał się ponownie, jeśli się zawiesi.

bogdan
źródło
Po co używać MacPorts, gdy mają dostępne oficjalne pliki binarne? Nienawidzę zależności niektórych użytkowników komputerów Mac od MacPorts, zwłaszcza gdy większość pakietów MacPorts jest nieaktualna, a zatem otwieracie się na dziury w zabezpieczeniach.
Cromulent
Simon, jest to wymagane, ponieważ Macports jest także menedżerem pakietów, więc w ten sposób można rozwiązać wiele problemów. Będziesz także mógł bardzo łatwo zaktualizować tomcat.
sorin

Odpowiedzi:

12

Służy do instalowania tomcat jako demona na porcie 8080, ale włącza także port 80 za pomocą przekierowania zapory. Został przetestowany na Mac OS 10.6, ale powinien również działać z 10.5.

Edytuj /opt/local/share/java/tomcat6/conf/server.xmli dodaj do proxyport="80" URIEncoding="UTF-8"środka <Connector .../>.

Aby przekierować port 80 na 8080, uruchom tę linię i dodaj /bin/catalina.sh:

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

Przydziel wystarczającą ilość pamięci do maszyny Java, w przeciwnym razie możesz mieć kłopoty. Wewnątrz/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"

W moim przykładzie przydzieliłem ~ 3Gb lub RAM, ale możesz to dostosować, w każdym razie nie wkładaj mniej niż 1 GB, jeśli pracujesz hudsonw tomcat.

Uruchomiony jako usługa

Uruchom nano /Library/LaunchDaemons/org.apache.tomcat.plisti wklej poniższy kod:

<?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>

Sprawdź, czy uruchomione wykryło nowego demona, jeśli nie, uruchom ponownie :(

launchctl list|grep tomcat

Uruchom tomcat ręcznie.

launchctl start org.apache.tomcat

Jeśli status jest inny niż -, masz problem i powinieneś go zbadać: launchctl log level debugi sprawdź /var/log/system.log.

Sorin Sbarnea
źródło
1
Mógłbym być ja, ponieważ jestem nowy w systemie Mac (OS X 10.8.2), ale musiałem zrobić: sudo launchctl load -w /Library/LaunchDaemons/org.apache.tomcat.plist, aby go uruchomić
Steve
1

Musisz zarejestrować tomcat jako element, który należy wykonać podczas uruchamiania. W systemie Mac OS jest to obsługiwane przez launchd ( http://developer.apple.com/macosx/launchd.html ). Nie wiem, czy uruchomione obsługuje automatyczne restartowanie, ale w przeciwnym razie powinieneś rzucić okiem na coś w rodzaju supervisord ( http://supervisord.org/ ).

Bjorn
źródło
Tak, wydany ma opcję podtrzymywania, zarówno jako tak / nie, jak i z czterema opcjonalnymi warunkami.
flumignan
1

Do uruchomienia systemu Snow Leopard przy uruchamianiu utworzyłem plik listy odtwarzania w / Library / LaunchDaemons / Plik listy odtwarzania będzie wyglądał następująco (poniżej, dostosuj do swoich katalogów). Możesz uruchomić / zatrzymać usługę testowania, wydając „launchctl load org.macports.tomcat6.plist” lub „launchctl unload org.macports.tomcat6.plist”. Gdy już to działa, uruchom ponownie komputer, aby udowodnić autostart podczas rozruchu.


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>
Gordonkshort
źródło