首页 > 系统相关 >Winsw将jar-bat-nacos-seata-nginx等快捷部署为windows服务

Winsw将jar-bat-nacos-seata-nginx等快捷部署为windows服务

时间:2022-12-02 16:15:23浏览次数:65  
标签:bat exe java seata windows jar -- NginxService

Winsw将jar-bat-nacos-seata-nginx等快捷部署为windows服务

1.软件下载

WinSW的github下载地址:https://github.com/winsw/winsw/releases

本文以WinSW v2.11.0为例

2.注意事项

1.xxx.xml和xxx.exe必须放在同一个文件夹

2.xxx.xml和xxx.exe的xxx必须一致,例test.xml和test.exe

3.编写配置文件

**注意事项**
 1.如果配置了环境变量executable直接写成java就行了,如果没有就写全路径
  <executable>java</executable>
  <executable>D:\java\jdk1.8.0_152\bin\java.exe</executable>
 2.如果auth.jar和auth.exe和auth.xml在同一个目录jar包路径可以省略,否则写全路径
  <arguments>-Dspring.profiles.active=dev  -Dfile.encoding=utf-8 -jar -Xmx1024M -Xms256M auth.jar</arguments>
  <arguments>-Dspring.profiles.active=dev  -Dfile.encoding=utf-8 -jar -Xmx1024M -Xms256M D:\jar\auth.jar</arguments>
 3.简单而言之就是
  <executable>启动可执行文件的路径
  <arguments>填写你要附加的参数

nacos示例

<service>
  
  <!-- 服务的ID. windows系统必须唯一-->
  <id>nacos</id>
  <!-- 服务名称 -->
  <name>nacos</name>
  <!-- 服务描述 -->
  <description>nacos服务</description>
  
  <!-- Path to the executable, which should be started -->
	  <!--
	如果配置了环境变量
	executable直接写成java就行了
	<executable>java</executable>
	<executable>D:\java\jdk1.8.0_152\bin\java.exe</executable>
	-->
	<executable>D:\JavaService\nacos-server-2.0.3\bin\startup.cmd</executable>
	<arguments>-m standalone</arguments>
	<startmode>Automatic</startmode>
	<logpath>%BASE%/log</logpath>
	<logmode>rotate</logmode>
</service>

jar示例

<service>
  
  <!-- ID of the service. It should be unique across the Windows system-->
  <id>auth</id>
  <!-- Display name of the service -->
  <name>auth</name>
  <!-- Service description -->
  <description>认证模块</description>
  
  <!-- Path to the executable, which should be started -->
	  <!--
	如果配置了环境变量
	executable直接写成java就行了
	<executable>java</executable>
	<executable>D:\java\jdk1.8.0_152\bin\java.exe</executable>
	-->
	<executable>java</executable>
	<arguments>-Dspring.profiles.active=dev  -Dfile.encoding=utf-8 -jar -Xmx1024M -Xms256M auth.jar</arguments>
	<startmode>Automatic</startmode>
	<logpath>%BASE%/log</logpath>
	<logmode>rotate</logmode>
</service>

nginx示例

<service>
 
<id>NginxService</id>
 
<name>NginxService</name>
 
<description>Nginx启动服务</description>
 
<!-- 启动 -->
<executable>nginx.exe</executable>
 
<!-- 停止 -->
<stopexecutable>nginx.exe -s stop</stopexecutable>
 
<!-- 开机启动 -->
<startmode>Automatic</startmode>
 
<!-- 日志配置 -->
<logpath>%BASE%\logs\serviceLog</logpath>
 
<!-- append:追加模式;reset:重设模式,每次服务启动时,旧的日志文件都会被截断;none:不生成任何日志文件 -->
<logmode>none</logmode>
 
</service>

bat/seata示例

<service>
  <!-- 指定在Windows系统内部使用的识别服务的ID。在系统中安装的所有服务中,这必须是唯一的,它应该完全由字母数字字符组成 -->
  <id>seata</id>
  <!-- 服务的简短名称,它可以包含空格和其他字符。尽量简短,就像“id”一样,在系统的所有服务名称中,也要保持唯一 -->
  <name>seata</name>
  <!-- 该服务可读描述。当选中该服务时,它将显示在Windows服务管理器中 -->
  <description>seata服务</description>
  <!-- 该元素指定要启动的可执行文件 -->
  <executable>D:\JavaService\seata-server-1.4.2\bin\seata-server.bat</executable>
  <startmode>Automatic</startmode>
  <!-- 日志输出位置 -->
  <logpath>%BASE%\seataServiceLogs</logpath>
  <logmode>rotate</logmode>
</service>

4.部署服务

例:windows下cmd执行命令,install对应部署,uninstall对应注销

D:\nginx>NginxService.exe install
2022-12-02 15:41:51,752 INFO  - Installing service 'NginxService (NginxService)'...
2022-12-02 15:41:51,805 INFO  - Service 'NginxService (NginxService)' was installed successfully.

D:\nginx>NginxService.exe uninstall
2022-12-02 15:41:56,789 INFO  - Uninstalling service 'NginxService (NginxService)'...
2022-12-02 15:41:56,800 INFO  - Service 'NginxService (NginxService)' was uninstalled successfully.

5.windows服务配置

最后在任务管理器中就能找到对应得 服务可以配置一下启停

6.批量部署/注销服务

windows的bat文件

部署:

@echo off

nginx.exe install
seata.exe install
nacos.exe install
xxx.exe install

exit

注销:

@echo off

nginx.exe uninstall
seata.exe uninstall
nacos.exe uninstall
xxx.exe uninstall

exit

7.附:xml其它配置注释

<!--
 这是Windows服务包装器的一个配置示例。
 此配置文件应放在WinSW.exe同目录,名称应相同。
 例如,对于myapp.exe,配置文件名应为myapp.xml。
 更多信息:https://github.com/kohsuke/winsw/blob/master/doc/xmlconfigfile.md
-->
<configuration>
  
<!-- 
SECTION: 必填项
-->
  
  <!-- 服务ID,在windows系统中必须唯一 -->
  <id>myapp</id>
  <!-- 服务显示名称,只能英文和数字 -->
  <name>MyApp Service (powered by WinSW)</name>
  <!-- 服务描述,只能英文和数字 -->
  <description>This service is a service cratead from a sample configuration</description>
  
  <!-- 启动可执行文件的路径 -->
  <executable>%BASE%\myExecutable.exe</executable>
 
<!--
SECTION: 安装
这些选项仅在安装时有效。修改配置后,必须重新安装服务才能生效。
-->
 
  <!--
    OPTION: serviceaccount
    定义运行服务的账号。
  -->
  <!--
  <serviceaccount>
    <domain>YOURDOMAIN</domain>
    <user>useraccount</user>
    <password>Pa55w0rd</password>
    <allowservicelogon>true</allowservicelogon>
  </serviceaccount>
  -->
  
  <!--
    OPTION: onfailure
    定义一系列操作,如果托管的可执行文件失败,则顺序执行这些操作。
    支持的操作:restart,reboot,none
  -->
  <!--
  <onfailure action="restart" delay="10 sec"/>
  <onfailure action="restart" delay="20 sec"/>
  <onfailure action="reboot" />
  -->
  
  <!--
    OPTION: resetfailure
    windows服务重置故障状态的时间。
    默认值 1 day
  -->
  <!--
  <resetfailure>1 hour</resetfailure>
  -->
 
<!--
SECTION: 执行管理配置
-->
 
  <!-- 
    OPTION: arguments
    传递给可执行文件的参数。
  -->
  <!--
  <arguments>-classpath c:\cygwin\home\kohsuke\ws\hello-world\out\production\hello-world test.Main</arguments>
  -->
 
  <!-- 
    OPTION: startarguments
    可执行文件启动参数。
    如果配置,则覆盖"arguments"
  -->
  <!--
  <startarguments></startarguments>
  -->
  
  <!--
    OPTION: workingdirectory
    如果指定,则设置可执行文件的默认工作目录。
    默认值:服务包装的可执行文件的目录
  -->
  <!--
  <workingdirectory>C:\myApp\work</workingdirectory>
-->
  
  <!--
    OPTION: priority
    所需的进程优先级。
    可设置的值:Normal, Idle, High, RealTime, BelowNormal, AboveNormal
    默认值:Normal
  -->
  <priority>Normal</priority>
  
  <!-- 
    OPTION: stoptimeout
    强制终止可执行文件之前,尝试正常关闭的等待时间。
    默认值:15 seconds
  -->
  <stoptimeout>15 sec</stoptimeout>
    
  <!--
    OPTION: stopparentprocessfirst
    如果设置为true,在停止子进程之前终止父进程。
    默认值:false
  -->
  <stopparentprocessfirst>false</stopparentprocessfirst>
 
  <!-- 
    OPTION: stopexecutable
    执行关闭服务的可执行文件路径。
    只有配置了"stoparguments"时,才使用此配置。如果没有则用"executable"关闭服务
  -->
  <!--
  <stopexecutable>%BASE%\stop.exe</stopexecutable>
  -->
 
  <!-- 
    OPTION: stoparguments
    终止服务时,传递给"stopexecutable"的附加参数
    此选项还允许通过停止可执行文件终止可执行文件
  -->
  <!--
  <stoparguments>-stop true</stoparguments>
  -->
<!-- 
SECTION: 服务管理
-->
    <!--
      OPTION: startmode
      定义服务的启动模式
      支持的模式:Automatic, Manual, Boot, System (latter ones are supported for driver services only)
      默认模式:Automatic
    -->
    <startmode>Automatic</startmode>
    
    <!--
      OPTION: delayedAutoStart
      如果在"startmode"配置了"Automatic",则启用延迟自动启动。
      请参阅Winsw文档以获取有关支持的平台版本和限制的信息。
    -->
    <!--
        <delayedAutoStart/>
    -->
    
    <!-- 
      OPTION: depend
      在本服务启动之前启动的服务。
    -->
    <!--
    <depend>Eventlog</depend>
    <depend>W32Time</depend>
    -->
    
    <!--
      OPTION: waithint
      挂起停止操作所需的时间
      在指定的时间段过去之前,服务应该下次调用setServiceStatus函数。
      否则服务将被标记为无响应
      默认值:15 seconds
    -->
    <waithint>15 sec</waithint>
    
    <!--
      OPTION: sleeptime
      服务下次调用setServiceStatus函数之前的时间。
      不要超过"waithint"。建议间隔是"waithint"的十分之一,但不小于1秒,也不大于10秒。
      默认值:1 second
    -->
    <sleeptime>1 sec</sleeptime>
    
    <!--
      OPTION: interactive
      指示服务可以与桌面交互。
    -->
    <!--
    <interactive/>
    -->
    
<!-- 
SECTION: 日志记录 
-->
 
  <!--
    OPTION: logpath
    为服务包装程序生成的所有日志设置自定义日志目录。
    默认值:包含执行器的目录
  -->
  <!--
    <logpath>%BASE%\logs</logpath>
  -->
  
  <!--
    OPTION: log
    为可执行文件生成的日志定义日志记录模式。
    支持的模式:
      * append - 追加到现有日志
      * none - 不保存日志
      * reset - 启动时擦除日志
      * roll - 根据大小自动循环分割日志
      * roll-by-time - 根据日期循环分割日志
    默认模式: append
    
    每种模式都有不同的设置。https://github.com/kohsuke/winsw/blob/master/doc/loggingAndErrorReporting.md
  -->
  <log mode="append">
    <!--
    <setting1/>
    <setting2/>
  -->
  </log>
  
<!--
SECTION: 环境设置
-->
  <!--
    OPTION: env
    设置或重写环境变量。
    顶层可能配置了多个条目。
  -->
  <!--
  <env name="MY_TOOL_HOME" value="C:\etc\tools\myTool" />
  <env name="LM_LICENSE_FILE" value="host1;host2" />
  -->
 
 
  <!--
    OPTION: download
    启动前由包装器执行的下载列表。
  -->
  <!--
  <download from="http://www.google.com/" to="%BASE%\index.html" />
  
  下载并在出现错误时使服务启动失败:
  <download from="http://www.nosuchhostexists.com/" to="%BASE%\dummy.html" failOnError="true"/>
  由于连接未加密而导致基本身份验证不安全的示例:
  <download from="http://example.com/some.dat" to="%BASE%\some.dat"
            auth="basic" unsecureAuth=“true”
            username="aUser" password=“aPassw0rd" />
  通过HTTPS安全基本身份验证
  <download from="https://example.com/some.dat" to="%BASE%\some.dat"
            auth="basic" username="aUser" password="aPassw0rd" />
  当目标服务器和客户端是同一域的成员,并且客户端域属于具有信任的域时,安全身份验证:
  <download from="https://example.com/some.dat" to="%BASE%\some.dat" auth="sspi" />
  -->
 
<!-- 
SECTION: 其他选项
-->
  
  <!--
    OPTION: beeponshutdown
    指示服务在关闭时(如果操作系统支持)应发出嘟嘟声。
  -->
  <!--
  <beeponshutdown/> 
  -->
  
<!--
SECTION: 扩展
此配置部分允许指定自定义扩展。
更多信息请访问:https://github.com/kohsuke/winsw/blob/master/doc/extensions/extensions.md
-->
 
<!--
<extensions>
  Extension 1: id values must be unique
  <extension enabled="true" id="extension1" className="winsw.Plugins.SharedDirectoryMapper.SharedDirectoryMapper">
    <mapping>
      <map enabled="false" label="N:" uncpath="\\UNC"/>
      <map enabled="false" label="M:" uncpath="\\UNC2"/>
    </mapping>
  </extension>
  ...
</extensions>
-->
 
</configuration>


标签:bat,exe,java,seata,windows,jar,--,NginxService
From: https://www.cnblogs.com/luckyang/p/16944736.html

相关文章

  • redis sentinel部署(Windows下实现)
    一、准备条件二、下载redis并解压  2.1、下载  2.2、解压三、HA配置四、新建和修改配置文件  4.1、修改redis.conf配置文件  4.2、创建并修改sentinel.conf......
  • windows server的应用软件限流QoS
    原因:生产环境中程序员写的redis调用方法有逻辑问题,导致流量高达800~900Mbps导致服务器其它网络服务有丢包现象,他又有别的项目紧急需要修改,只能通过系统自带的QoS临......
  • 数据库面试题--Mybatis
    Mybatis1.什么是Mybatis?2.Mybatis的优缺点?3.Mybatis使用场合?4.#{}和${}的区别是什么?5.当实体类的属性名和表种字段名不一致怎么办?6.Mybatis是如何将sql执行结果......
  • 【Win10】如何关闭Windows10自动更新
    如何关闭Windows10自动更新零、问题Windows10老是自动更新,有时候第二天起来又得重新打开软件,真麻烦,Win10自动更新的时候还有点卡。如何关闭?经过上网查询,发现完全关闭......
  • windows 无法验证创建此文件的人员 的解决方法
    在win7系统中打开程序的时候出现了:【打开文件-安全警告】错误弹窗:我们无法验证创建此文件的人员,是否确定要与运行此文件?的错误提示,该怎么办呢?当我们在win10系统中每次打开......
  • PADS VX2.4 在WINDOWS 10乱码
    1,修改计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\FontsMicrosoftYaHei&MicrosoftYaHeiUI(TrueType)simsun.ttc默认:msyh.ttcMicroso......
  • WindowsAPI-C#版_句柄回调常用通知类型汇总(HandleNotification)
    包含自定义的HandleNotification_MessageMsg、HandleNotification_MessageWParam类型,如下:/***┌──────────────────────────────────......
  • WindowsAPI-C#版_原始设备输入常用API
    WindowsAPI-C#版_原始设备输入常用API:/***┌──────────────────────────────────────────────────────────......
  • Windows下Redis安装与配置的两种方式
    原文链接:https://blog.csdn.net/HQqHQhqqhq/article/details/127903697安装和配置RedisRedis的安装有两种安装形式,一种是安装包式,另一种是压缩包注意:windows没有32位的,所......
  • windows脚本
    cmd脚本结束后不退出窗口cmd设置环境变量#为当前用户设置环境变量setxHTTP_PROXYhttp://127.0.0.1:8888#设置系统环境变量setx/MHTTPS_PROXYhttp://127.0.......