¿Cómo inicio Apache Tomcat en el arranque en Mac OS X?


16

Observé que no hay una guía completa para instalar tomcat en OS X que incluirá la configuración para comenzar en el momento del arranque.

Aquí está la guía rápida:

  • instalar macports
    • suport port upgrade
    • sudo port upgrade outdated.
  • sudo port install tomcat6, o si quieres otra versión verifica port list|grep tomcat
  • config ahora está en: /opt/local/share/java/tomcat6/conf
  • script de inicio: /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

  • ... consultar artículo

Pero me falta la parte sobre cómo hacer que se ejecute como verdadero servicio / demonio: al inicio del sistema y, opcionalmente, para que se reinicie si se bloquea.


¿Por qué usar MacPorts cuando tienen binarios oficiales disponibles? Odio la confianza que algunos usuarios de Mac tienen para MacPorts, especialmente cuando la mayoría de los paquetes de MacPorts están desactualizados y por lo tanto te abres a los agujeros de seguridad.
Cromulent

Simon, esto es necesario porque macports también es un administrador de paquetes, por lo que superarás muchos problemas de esta manera. También podrás actualizar tomcat de manera muy fácil.
sorin

Respuestas:


12

Esto es para instalar tomcat como daemon en el puerto 8080, pero también habilita el puerto 80 utilizando una redirección de firewall. Fue probado en Mac OS 10.6 pero debería funcionar también con 10.5.

Edita /opt/local/share/java/tomcat6/conf/server.xmly agrega proxyport="80" URIEncoding="UTF-8"dentro <Connector .../>.

Para reenviar el puerto 80 al 8080, ejecute esta línea y agréguela /bin/catalina.sh:

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

Asigne suficiente memoria a la máquina Java o puede tener problemas más tarde. Dentro/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"

En mi ejemplo, asigné ~ 3Gb o RAM, pero puede adaptar esto, de todos modos, no ponga menos de 1GB si está ejecutando hudsondentro de Tomcat.

Corriendo como un servicio

Ejecute nano /Library/LaunchDaemons/org.apache.tomcat.plisty pegue el siguiente código:

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

Comprueba que launchd detectó tu nuevo demonio, si no reinicia :(

launchctl list|grep tomcat

Inicie tomcat manualmente.

launchctl start org.apache.tomcat

Si el estado es diferente -, tiene un problema y debe investigarlo: launchctl log level debugy verificar /var/log/system.log.


1
Podría ser yo ya que soy nuevo en Mac (OS X 10.8.2) pero tuve que hacer: sudo launchctl load -w /Library/LaunchDaemons/org.apache.tomcat.plist para que comience
Steve


1

Para el lanzamiento de Snow Leopard en el inicio, creé un archivo plist en / Library / LaunchDaemons / El archivo plist se verá así (a continuación, modifíquelo para que coincida con sus directorios). Puede iniciar / detener el servicio para las pruebas emitiendo "launchctl load org.macports.tomcat6.plist" o "launchctl unload org.macports.tomcat6.plist". Una vez que lo tenga funcionando, reinicie para probar el inicio automático en el arranque.


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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.