如何在 Mac OS X 上启动时启动 Apache Tomcat?

bog*_*dan 17 tomcat mac-osx

我观察到没有在 OS X 上安装 tomcat 的完整指南,其中包括将其设置为在启动时启动。

这是快速指南:

  • 安装macports
    • 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

  • ...检查文章

我错过了如何让它作为真正的服务/守护进程运行的部分:在系统启动时,如果它崩溃,可以选择让它重新启动。

sor*_*rin 14

这是为了在端口 8080 上将tomcat 安装为守护进程,但也可以通过使用防火墙重定向来启用端口 80。它在 Mac OS 10.6 上进行了测试,但也应该适用于 10.5。

/opt/local/share/java/tomcat6/conf/server.xmlproxyport="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
Run Code Online (Sandbox Code Playgroud)

为 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"
Run Code Online (Sandbox Code Playgroud)

在我的示例中,我分配了 ~3Gb 或 RAM,但您可以调整它,无论如何,如果您hudson在 tomcat中运行,请不要放置少于 1GB 。

作为服务运行

运行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>
Run Code Online (Sandbox Code Playgroud)

检查launchd是否检测到您的新守护程序,如果没有重新启动:(

launchctl list|grep tomcat
Run Code Online (Sandbox Code Playgroud)

手动启动tomcat。

launchctl start org.apache.tomcat
Run Code Online (Sandbox Code Playgroud)

如果状态不是-,则您有问题,您应该调查它:launchctl log level debug并检查/var/log/system.log


Bjo*_*orn 1

需要将tomcat注册为启动时需要执行的项目。在 Mac OS 上,这是由 launchd 处理的 ( http://developer.apple.com/macosx/launchd.html )。我不知道 launchd 是否支持自动重启,但否则你应该看看类似supervisord(http://supervisord.org/)的东西。