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


16

我观察到,没有在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

  • ... 检查文章

但是我缺少如何使它作为真正的服务/守护程序运行的部分:在系统启动时,并且可以选择使它在崩溃时重新启动。


当MacPorts具有官方二进制文件时,为什么要使用它们?我讨厌某些Mac用户对MacPorts的依赖,尤其是当大多数MacPorts软件包已过时并因此使自己面临安全漏洞时。
Cromulent

Simon,这是必需的,因为macports还是程序包管理器,因此使用这种方法会遇到很多问题。此外,您将能够非常轻松地升级tomcat。
sorin 2010年

Answers:


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,但是您可以调整它,如果您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>

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

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

为了在启动时启动Snow Leopard,我在/ Library / LaunchDaemons /中创建了一个plist文件。该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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.