美文网首页
配置Tomcat为Windows系统服务

配置Tomcat为Windows系统服务

作者: 凡忘川 | 来源:发表于2019-04-23 22:32 被阅读0次

    1. Tomcat安装概述

    Tomcat官网提供了多种类型的安装包供下载使用,针对 Windows 操作系统,主要存在如下几个版本:

    • zip
    • 32-bit Windows zip
    • 64-bit Windows zip
    • 32-bit/64-bit Windows Service Installer

    简单来看,就是两类:zip压缩包和服务安装版,前三个版本都是.zip

    一般首选zip压缩包,免安装,解压就可使用。

    在开发阶段,使用bin\startup.bat启动、停止服务器,很方便。
    但在生产环境下,每次都停留一个黑色的命令行窗口,且都要手工启停很是麻烦,也容易被不小心关掉。

    当然也有好处,可以直接观察运行日志的输出,了解服务运行情况

    2. 配置Tomcat为系统服务

    为了能够开机自动启动,没有黑窗口,通常会选择将Tomcat配置为系统服务,并设置自动启动。

    具体方法有两种:

    1. 直接下载安装Windows Service Installer版本
      双击安装后,会自动配置为Windows服务,并提供系统运行托盘(在任务栏右下角出现)。

    2. 使用zip压缩包版本,手工配置为系统服务。
      Tomcat在安装目录的bin路径下,提供了service.bat脚本,来帮助我们将Tomcat配置为系统服务。

    对于方法1,没有必要说明,主要介绍如何用方式2。

    2.1 使用Tomcat自带的service.bat配置系统服务

    service.bat 提供了install、remove/uninstall两个可选操作,分别对应"安装服务","移除服务"。

    (1) 安装Tomcat服务

    Step 1 : 打开cmd,使用cd命令切换到tomcat安装目录/bin路径下。

    cd c:\tomcat8.5.43\bin
    

    Step 2 : 在cmd窗口,输入 service install 服务名称 创建为Windows系统服务。
    也可以不指定服务名称,会默认服务名称为 Tomcat + 当前的Tomcat主版本号,如 "Tomcat8"。

    c:\tomcat8.5.43\bin>service install tomcat-instance-1
    

    如上,服务名为: tomcat-instance-1

    Step3 : 打开Windows的服务管理窗口,编辑服务属性,设置为自动启动。

    ① 打开服务窗口

    在命令行输入

    c:\tomcat8.5.43\bin>services.msc
    

    ② 查找名为 "Apache Tomcat 8.5 tomcat-instance-1" 的系统服务

    service.bat 创建的服务显示名规则为 Apache Tomcat 8.5 + 服务名称

    ③ 选中服务,右键属性,修改启动类型为"自动"。

    (2)移除Tomcat服务
    移除相对简单很多,直接在service.bat所在路径下(也就是bin路径下),输入

    c:\tomcat8.5.43\bin>service remove tomcat-instance-1
    

    关于运行的说明:
    配置为Windows服务后,在其服务属性的常规选项卡中,可以查看到有一项
    可执行文件路径: c:\tomcat8.5.43\bin\tomcat8.exe //RS//tomcat-instance-1”

    可以看出,启动服务实际执行的是tomcat8.exe,其中的//RS//参数指定运行名为tomcat-instance-1的服务。

    解释一下

    • tomcat8.exe 是创建、启动、更新、删除Tomcat服务的服务管理程序,service.bat本质上是对它的调用。
    • tomcat8w.exe,是监控、配置Tomcat服务的图形化应用程序

    它们的用途和可用参数,具体请参考官方的Doc

    2.2 指定Tomcat服务使用非“环境变量”配置的JDK

    在一个服务器上可能同时运行着多个Tomcat,不同的Tomcat版本对JDK的版本要求不同。

    配置为Windows服务的Tomcat,如果没有做额外配置,会默认使用操作系统的环境变量设置中的JAVA_HOME、JRE_HOME作为JDK路径(默认先搜索JAVA_HOME,没有,再搜索JRE_HOME,再没有,报错)。

    有几种方式来配置Tomcat Windows服务使用的JDK
    (1) 修改service.bat文件,指定JAVA_HOME为目标JDK路径,再移除/重新安装为系统服务
    在service.bat文件开头,加入

    set JAVA_HOME=D:\java\jdk1.8.0_191
    

    前面说过,service.bat安装时,默认使用系统环境变量中的JAVA_HOME、JRE_HOME作为JDK路径,这里在其脚本中重新指定目标JDK就可以解决。

    但要移除/重新安装走一遍,有那么点不科学。对,就是DRY的感觉!

    (2)使用tomat8w.exe修改服务参数
    tomcat8w.exe,是监控、配置Tomcat服务的图形化应用程序,可以对Tomcat服务做配置。

    ① 打开tomcat8w.exe 服务配置窗口
    如果是默认服务名,直接双击tomcat8w.exe即可

    如果不是,则在cmd中,输入

    c:\tomcat8.5.43\bin>tomcat8w \\ES\\tomcat-instance-1
    

    也可以复制tomcat8w.exe,并重命名为要配置的Tomcat服务名w.exe,例如这里的: tomcat-instance-1w.exe,然后双击打开。

    ② 修改Java路径
    打开 Java 选项卡,修改 Java Virtual Machine 值为 目标JDK + "\bin\server\jvm.dll"

    如:

    D:\java\jdk1.8.0_191\bin\server\jvm.dll
    

    2.3 配置Tomcat服务总结

    对配置过程,优化并归纳总结如下:

    • 修改service.bat,在第一句代码后,添加 set JAVA_HOME=目标JDK路径
    • 打开cmd窗口,输入 service install 服务名称
    • 复制tomcat8w.exe,重命名为服务名w.exe,再双击打开;
    • 在打开的服务配置窗口的“General”选项卡中,设置“Startup Type”为“Automatic”。

    3. Tomcat (非Windows服务的)配置建议

    额外补充一些Tomcat (非Windows服务)的配置细节:

    • startup.bat 调用 catalina.bat start 来启动Tomcat
    • catalina.bat 调用 setclasspath.bat 来设置Tomcat运行使用的JDK路径
    • setclasspath.bat 用来配置Java,如检测到JAVA_HOME或JRE_HOME为空时,会使用环境变量中的JAVA_HOME或JRE_HOME值。

    根据这个过程,可以看出catalina.bat才是核心脚本。
    因此对Tomcat做非Windows服务的配置,建议直接修改catalina.bat文件。

    相关文章

      网友评论

          本文标题:配置Tomcat为Windows系统服务

          本文链接:https://www.haomeiwen.com/subject/zghigqtx.html