Назад | Перейти на главную страницу

Как запустить Apache Tomcat при загрузке в Mac OS X?

Я заметил, что нет полного руководства по установке tomcat в OS X, которое включало бы его настройку для запуска во время загрузки.

Вот краткое руководство:

Но Мне не хватает части о том, как заставить его работать как настоящую службу / демон: при запуске системы и, возможно, перезапустить его, если он выйдет из строя.

Это для установки 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"

В моем примере я выделил ~ 3 ГБ или ОЗУ, но вы можете это адаптировать, в любом случае не ставьте менее 1 ГБ, если вы работаете hudson внутри кота.

Работает как услуга

Бегать 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>

Убедитесь, что launchd обнаружил новый демон, если не перезагрузите компьютер :(

launchctl list|grep tomcat

Запустите tomcat вручную.

launchctl start org.apache.tomcat

Если статус отличается от -, у вас есть проблема, и вам следует ее изучить: launchctl log level debug и проверьте /var/log/system.log.

Вам необходимо зарегистрировать tomcat как элемент, который необходимо выполнить при запуске. В Mac OS это выполняется с помощью launchd (http://developer.apple.com/macosx/launchd.html). Я не знаю, поддерживает ли launchd автоматический перезапуск, но в противном случае вам стоит взглянуть на что-то вроде supervisord (http://supervisord.org/).

Для запуска Snow Leopard при запуске я создал файл plist в / Library / LaunchDaemons /. Файл plist будет выглядеть следующим образом (ниже внесите изменения в соответствии с вашими каталогами). Вы можете запустить / остановить службу для тестирования, введя команду «launchctl load org.macports.tomcat6.plist» или «launchctl 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>