将Tomcat服务加入到系统服务

Jenkins的部署请看这篇,上面的jenkins服务需要手动启停,不方便。
将tomcat加入到系统服务中即可实现自启动,如下:

  1. 在Tomcat安装目录bin文件下添加service.bat文件
内容如下:
@echo off rem Licensed to the Apache Software Foundation (ASF) under one or more rem contributor license agreements.See the NOTICE file distributed with rem this work for additional information regarding copyright ownership. rem The ASF licenses this file to You under the Apache License, Version 2.0 rem (the "License"); you may not use this file except in compliance with rem the License.You may obtain a copy of the License at rem remhttp://www.apache.org/licenses/LICENSE-2.0 rem rem Unless required by applicable law or agreed to in writing, software rem distributed under the License is distributed on an "AS IS" BASIS, rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. rem See the License for the specific language governing permissions and rem limitations under the License.rem --------------------------------------------------------------------------- rem NT Service Install/Uninstall script rem rem Options rem installInstall the service using Tomcat9 as service name. remService is installed using default settings. rem removeRemove the service from the System. rem rem name(optional) If the second argument is present it is considered remto be new service name rem ---------------------------------------------------------------------------setlocalset "SELF=%~dp0%service.bat" rem Guess CATALINA_HOME if not defined set "CURRENT_DIR=%cd%" if not "%CATALINA_HOME%" == "" goto gotHome set "CATALINA_HOME=%cd%" if exist "%CATALINA_HOME%\bin\tomcat9.exe" goto okHome rem CD to the upper dir cd .. set "CATALINA_HOME=%cd%" :gotHome if exist "%CATALINA_HOME%\bin\tomcat9.exe" goto okHome echo The tomcat9.exe was not found... echo The CATALINA_HOME environment variable is not defined correctly. echo This environment variable is needed to run this program goto end :okHome rem Make sure prerequisite environment variables are set if not "%JAVA_HOME%" == "" goto gotJdkHome if not "%JRE_HOME%" == "" goto gotJreHome echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined echo Service will try to guess them from the registry. goto okJavaHome :gotJreHome if not exist "%JRE_HOME%\bin\java.exe" goto noJavaHome if not exist "%JRE_HOME%\bin\javaw.exe" goto noJavaHome goto okJavaHome :gotJdkHome if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome rem Java 9 has a different directory structure if exist "%JAVA_HOME%\jre\bin\java.exe" goto preJava9Layout if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome if not "%JRE_HOME%" == "" goto okJavaHome set "JRE_HOME=%JAVA_HOME%" goto okJavaHome :preJava9Layout if not exist "%JAVA_HOME%\jre\bin\javaw.exe" goto noJavaHome if not "%JRE_HOME%" == "" goto okJavaHome set "JRE_HOME=%JAVA_HOME%\jre" goto okJavaHome :noJavaHome echo The JAVA_HOME environment variable is not defined correctly echo This environment variable is needed to run this program echo NB: JAVA_HOME should point to a JDK not a JRE goto end :okJavaHome if not "%CATALINA_BASE%" == "" goto gotBase set "CATALINA_BASE=%CATALINA_HOME%" :gotBaseset "EXECUTABLE=%CATALINA_HOME%\bin\tomcat9.exe"rem Set default Service name set SERVICE_NAME=Tomcat9 set DISPLAYNAME=Apache Tomcat 9.0 %SERVICE_NAME%rem Java 9 no longer supports the java.endorsed.dirs rem system property. Only try to use it if rem JAVA_ENDORSED_DIRS was explicitly set rem or CATALINA_HOME/endorsed exists. set ENDORSED_PROP=ignore.endorsed.dirs if "%JAVA_ENDORSED_DIRS%" == "" goto noEndorsedVar set ENDORSED_PROP=java.endorsed.dirs goto doneEndorsed :noEndorsedVar if not exist "%CATALINA_HOME%\endorsed" goto doneEndorsed set ENDORSED_PROP=java.endorsed.dirs :doneEndorsedif "x%1x" == "xx" goto displayUsage set SERVICE_CMD=%1 shift if "x%1x" == "xx" goto checkServiceCmd :checkUser if "x%1x" == "x/userx" goto runAsUser if "x%1x" == "x--userx" goto runAsUser set SERVICE_NAME=%1 set DISPLAYNAME=Apache Tomcat 9.0 %1 shift if "x%1x" == "xx" goto checkServiceCmd goto checkUser :runAsUser shift if "x%1x" == "xx" goto displayUsage set SERVICE_USER=%1 shift runas /env /savecred /user:%SERVICE_USER% "%COMSPEC% /K \"%SELF%\" %SERVICE_CMD% VICE_NAME%" goto end :checkServiceCmd if /i %SERVICE_CMD% == install goto doInstall if /i %SERVICE_CMD% == remove goto doRemove if /i %SERVICE_CMD% == uninstall goto doRemove echo Unknown parameter "%SERVICE_CMD%" :displayUsage echo. echo Usage: service.bat install/remove [service_name] [/user username] goto end:doRemove rem Remove the service echo Removing the service '%SERVICE_NAME%' ... echo Using CATALINA_BASE:"%CATALINA_BASE%""%EXECUTABLE%" //DS//%SERVICE_NAME% ^ --LogPath "%CATALINA_BASE%\logs" if not errorlevel 1 goto removed echo Failed removing '%SERVICE_NAME%' service goto end :removed echo The service '%SERVICE_NAME%' has been removed goto end:doInstall rem Install the service echo Installing the service '%SERVICE_NAME%' ... echo Using CATALINA_HOME:"%CATALINA_HOME%" echo Using CATALINA_BASE:"%CATALINA_BASE%" echo Using JAVA_HOME:"%JAVA_HOME%" echo Using JRE_HOME:"%JRE_HOME%"rem Try to use the server jvm set "JVM=%JRE_HOME%\bin\server\jvm.dll" if exist "%JVM%" goto foundJvm rem Try to use the client jvm set "JVM=%JRE_HOME%\bin\client\jvm.dll" if exist "%JVM%" goto foundJvm echo Warning: Neither 'server' nor 'client' jvm.dll was found at JRE_HOME. set JVM=auto :foundJvm echo Using JVM:"%JVM%"set "CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar; %CATALINA_BASE%\bin\tomcat-juli.jar" if not "%CATALINA_HOME%" == "%CATALINA_BASE%" set "CLASSPATH=%CLASSPATH%; %CATALINA_HOME%\bin\tomcat-juli.jar"if "%SERVICE_STARTUP_MODE%" == "" set SERVICE_STARTUP_MODE=manual if "%JvmMs%" == "" set JvmMs=128 if "%JvmMx%" == "" set JvmMx=256"%EXECUTABLE%" //IS//%SERVICE_NAME% ^ --Description "Apache Tomcat 9.0.8 Server - http://tomcat.apache.org/" ^ --DisplayName "%DISPLAYNAME%" ^ --Install "%EXECUTABLE%" ^ --LogPath "%CATALINA_BASE%\logs" ^ --StdOutput auto ^ --StdError auto ^ --Classpath "%CLASSPATH%" ^ --Jvm "%JVM%" ^ --StartMode jvm ^ --StopMode jvm ^ --StartPath "%CATALINA_HOME%" ^ --StopPath "%CATALINA_HOME%" ^ --StartClass org.apache.catalina.startup.Bootstrap ^ --StopClass org.apache.catalina.startup.Bootstrap ^ --StartParams start ^ --StopParams stop ^ --JvmOptions "-Dcatalina.home=%CATALINA_HOME%; -Dcatalina.base=%CATALINA_BASE%; -D%ENDORSED_PROP%=%CATALINA_HOME%\endorsed; -Djava.io.tmpdir=%CATALINA_BASE%\temp; -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager; -Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties; %JvmArgs%" ^ --JvmOptions9 "--add-opens=java.base/java.lang=ALL-UNNAMED#--add-opens=java.base/java.io=ALL-UNNAMED#--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" ^ --Startup "%SERVICE_STARTUP_MODE%" ^ --JvmMs "%JvmMs%" ^ --JvmMx "%JvmMx%" if not errorlevel 1 goto installed echo Failed installing '%SERVICE_NAME%' service goto end :installed echo The service '%SERVICE_NAME%' has been installed.:end cd "%CURRENT_DIR%"

  1. 设为启动服务,运行cmd到bin目录下
将Tomcat服务加入到系统服务
文章图片

  1. 运行命令:service install
将Tomcat服务加入到系统服务
文章图片

这里会有个问题:解压版的bin目录里没有tomcat9.exe
  1. 查看服务(控制面板—搜服务—查看本地服务)
将Tomcat服务加入到系统服务
文章图片

  1. 选中右键选择—属性
将Tomcat服务加入到系统服务
文章图片

  1. 启动类型改为自动
【将Tomcat服务加入到系统服务】将Tomcat服务加入到系统服务
文章图片

确定
  1. 启动
将Tomcat服务加入到系统服务
文章图片

  1. ok
将Tomcat服务加入到系统服务
文章图片

    推荐阅读