Як запустити Apache Tomcat під час завантаження на Mac OS X?


16

Я зауважив, що не існує повного посібника з встановлення tomcat на OS X, який включатиме налаштування його для запуску під час завантаження.

Ось короткий посібник:

  • встановити макпорти
    • suport port upgrade
    • sudo port upgrade outdated.
  • sudo port install tomcat6або якщо ви хочете перевірити іншу версію port list|grep tomcat
  • Тепер конфігурація знаходиться за адресою: /opt/local/share/java/tomcat6/conf
  • сценарій запуску: /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

  • ... перевірити статтю

Але мені не вистачає частини про те, як змусити його запускатись як справжній сервіс / демон: при запуску системи та, можливо, змусити її перезапустити, якщо він виходить з ладу.


Навіщо використовувати MacPorts, коли вони мають офіційні бінарні файли? Я ненавиджу надійність деяких користувачів Mac для MacPorts, особливо коли більшість пакетів MacPorts застаріли, і, таким чином, ви відкриваєтеся до отворів у безпеці.
Кромулент

Саймоне, це потрібно, тому що макпорти - це також менеджер пакунків, тож за допомогою цього способу у вас виникне багато проблем. Також ви зможете оновити tomcat дуже легко.
sorin

Відповіді:


12

Це для встановлення tomcat як демон на порт 8080, але включити також порт 80 за допомогою перенаправлення брандмауера. Він був протестований на Mac OS 10.6, але також повинен працювати з 10.5.

Відредагуйте /opt/local/share/java/tomcat6/conf/server.xmlта додайте proxyport="80" URIEncoding="UTF-8"всередину <Connector .../>.

Для переадресації порт 80 на 8080 запустіть цей рядок і додайте його до /bin/catalina.sh:

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

Призначити достатню кількість пам’яті машині Java, або ви, можливо, пізніше будете мати проблеми. Всередині/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"

У своєму прикладі я виділив ~ 3Gb або RAM, але ви можете адаптувати це, все одно не кладіть менше 1 Гб, якщо ви працюєте hudsonв tomcat.

Працює як послуга

Біжи nano /Library/LaunchDaemons/org.apache.tomcat.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>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>

Переконайтесь, що запуск виявив у вас нового демона, якщо не перезавантажте :(

launchctl list|grep tomcat

Запустіть tomcat вручну.

launchctl start org.apache.tomcat

Якщо стан є чимось іншим, ніж у -вас є проблема, і вам слід її дослідити: launchctl log level debugі перевірити /var/log/system.log.


1
Я міг би бути мені, коли я новачок у Mac (OS X 10.8.2), але мені довелося зробити: sudo launchctl load -w /Library/LaunchDaemons/org.apache.tomcat.plist, щоб розпочати його
Steve

1

Вам потрібно зареєструвати tomcat як елемент, який потрібно виконати при запуску. У Mac OS цим керує запуск ( http://developer.apple.com/macosx/launchd.html ). Я не знаю, чи запускає запуск автоматичний перезапуск, але в іншому випадку ви повинні подивитися на щось на кшталт supervisord ( http://supervisord.org/ ).


Так, у запуску є опція збереження, як «так / ні», так і з чотирма додатковими умовами.
flumignan

1

Для запуску Snow Leopard я створив файл плістів у / Library / LaunchDaemons / Файл plist виглядатиме так (нижче, виправляйте його відповідно до ваших каталогів). Ви можете запустити / зупинити послугу тестування, видавши "startctl load org.macports.tomcat6.plist" або "startctl unload org.macports.tomcat6.plist". Після того, як ви будете працювати перезавантажити, щоб довести автозапуск при завантаженні.


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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.