Como inicio o Apache Tomcat na inicialização no Mac OS X?

16

Eu observei que não há um guia completo para a instalação do tomcat no OS X que incluirá a configuração para iniciar no momento da inicialização.

Aqui está o guia rápido:

  • instale macports
    • suport port upgrade
    • sudo port upgrade outdated .
  • sudo port install tomcat6 , ou se você quiser outra verificação de versão port list|grep tomcat
  • config está agora em: /opt/local/share/java/tomcat6/conf
  • script de inicialização: /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

  • ... verifique o artigo

Mas estou perdendo a parte sobre como executá-lo como verdadeiro service / daemon: na inicialização do sistema e, opcionalmente, para reiniciá-lo se ele falhar.

    
por bogdan 22.09.2010 / 11:00

3 respostas

12

Isso é para instalar o tomcat como um daemon na porta 8080, mas também para ativar a porta 80 usando um redirecionamento de firewall. Foi testado no Mac OS 10.6, mas deve funcionar também com 10.5.

Edite /opt/local/share/java/tomcat6/conf/server.xml e adicione proxyport="80" URIEncoding="UTF-8" dentro de <Connector .../> .

Para a porta de encaminhamento 80 a 8080, execute esta linha e adicione-a em /bin/catalina.sh :

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

Atribua memória suficiente à máquina Java ou poderá estar em apuros mais tarde. Dentro de /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"

No meu exemplo eu aloquei ~ 3Gb ou RAM, mas você pode adaptar isso, de qualquer maneira, não coloque menos que 1GB se você estiver rodando hudson dentro do tomcat.

Executando como um serviço

Execute nano /Library/LaunchDaemons/org.apache.tomcat.plist e cole o código abaixo:

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

Verifique se launchd detectou seu novo daemon, se não reinicializar: (

launchctl list|grep tomcat

Inicie o tomcat manualmente.

launchctl start org.apache.tomcat

Se o status for diferente de - , você tem um problema e deve investigá-lo: launchctl log level debug e verifique /var/log/system.log .

    
por 24.08.2012 / 22:37
1

Você precisa registrar o tomcat como um item que precisa ser executado na inicialização. No Mac OS, isso é feito pelo launchd ( link ). Não sei se o launchd suporta a reinicialização automática, mas caso contrário, você deve dar uma olhada em algo como o supervisord ( link ).

    
por 22.09.2010 / 11:04
1

Para o lançamento do Snow Leopard na inicialização, criei um arquivo plist em / Library / LaunchDaemons / O arquivo plist será semelhante a este (abaixo, emendar para corresponder aos diretórios). Você pode iniciar / parar o serviço para teste emitindo "launchctl load org.macports.tomcat6.plist" ou "launchctl unload org.macports.tomcat6.plist". Depois de tê-lo funcionando reiniciar para provar a partida automática na inicialização.

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>
    
por 30.03.2011 / 01:27