![作为服务运行](https://linux22.com/image/525126/%E4%BD%9C%E4%B8%BA%E6%9C%8D%E5%8A%A1%E8%BF%90%E8%A1%8C.png)
我发现没有在 OS X 上安装 tomcat 的完整指南,包括将其设置为在启动时启动。
以下是快速指南:
- 安装苹果端口
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
...查看文章
但我缺少如何使其作为真正的服务/守护进程运行的部分:在系统启动时,以及在系统崩溃时可选择使其重新启动。
答案1
这是用于将 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
分配足够的内存否则以后你可能会遇到麻烦。/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"
hudson
在我的示例中,我分配了~3Gb 或 RAM,但您可以调整这一点,无论如何,如果您在 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>
检查 launchd 是否检测到你的新守护进程,如果没有,请重新启动 :(
launchctl list|grep tomcat
手动启动 tomcat。
launchctl start org.apache.tomcat
如果状态不是-
,则说明您遇到了问题,应该进行调查:launchctl log level debug
并检查/var/log/system.log
。
答案2
您需要将 tomcat 注册为启动时需要执行的项目。在 Mac OS 上,这由 launchd 处理(http://developer.apple.com/macosx/launchd.html)。我不知道 launchd 是否支持自动重启,否则你应该看看类似 Supervisord 的东西(http://supervisord.org/)。
答案3
为了在 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>