自动启动 tomcat 实例的最佳方法是什么?我配置了多个 vhost 以在各个端口上使用 tomcat。我确信有人遇到过这个具有挑战性的管理任务。你认为 rc.local 可以吗?我不想用这么多命令弄乱该文件,如果适用的话,我想要一个一次性脚本。
答案1
在 Linux 下,最好的方法是使用标准 SysV Init 脚本。这是 Linux 下守护进程的启动方式,因此大多数系统管理员首先会查看它。
标准就是这样的好。;)
许多发行版都附带一个您可以修改以适应的骨架启动脚本,有些还附带一个 shell 函数库,您可以获取该函数库来帮助您编写启动脚本,例如在 redhat 上有/etc/init.d/functions
。
您可能只是使用它来调用 Tomcat 附带的标准启动脚本。Tomcat 甚至可能附带 SysV init 脚本,我记不清了,自从我安装 vanilla tomcat 以来已经很久了。
让你的启动脚本也能进行 chkconfig 操作!
答案2
我通常使用秃鹰用于管理我的“作业” - 它允许您根据需要动态或静态地分发您的应用程序。然后,您应该能够使用您喜欢的任何自动启动机制,而不会让您的配置四处流传以供所有人查看。
答案3
为什么不在同一个 tomcat 实例中运行它们?Tomcat 可以监听多个端口,并从不同的 webapp 目录为不同的 webapp 集提供服务。调查 tomcat 的 server.xml 文档中的 <engine> 元素。
答案4
我编写了一个自定义的 init 脚本,该脚本假设目录 /var/tomcat 包含子目录,每个子目录都是 Tomcat 实例的配置。它遍历每个子目录,检查 conf/server.xml 是否存在,如果存在,则将 CATALINA_BASE 设置为该子目录,并使用适当的参数 (stop|start) 运行其 bin/catalina.sh 脚本。