通用步骤(以Nacos为例)
1、插件下载
地址:Releases · winsw/winsw · GitHub
Windiws 上的 .NET framework 版本 要 是4.6或以上。
选择下面这个插件:
2、配置文件和插件安装
1、在nacos解压包的bin目录下创建nacos-service.xml文件
2、在nacos-service.xml输入以下内容:
1
2
3
4
5
6
7
8
9
10
|
<?xml version="1.0" encoding="UTF-8" ?>
<service>
<id>nacos</id> <!-- 服务id,必须唯一 -->
<name>Nacos Service</name> <!-- 服务名称 -->
<description>Nacos-service</description> <!-- 服务描述 -->
<logpath>D:\tool\nacos\nacos\bin\logs\</logpath> <!-- 日志路径 -->
<logmode>roll</logmode>
<executable>D:\tool\nacos\nacos\bin\startup.cmd</executable>
<stopexecutable>D:\tool\nacos\nacos\bin\shutdown.cmd</stopexecutable>
</service>
|
先说注意的点:不要有中文!!不要有中文!!不要有中文!!
博主就是在中文这块折腾很久,保险起见哪怕注释都不要有中文
另外,要将三个地址改为你自己的:
解释下相关配置:
id:服务id,需在windows系统上唯一,不能与其他服务有冲突
name:注册完服务后显示的服务名称
description:随便写,但尽量不要有中文
一般将下载下来的 winsw.exe 修改成 jar文件同名。并在同目录创建一个 同名的xml,每个软件分别放置一个此软件,大佬可自行摸索配置环境变量
3、将刚刚下载的 WinSW-x64.exe插件移动到nacos解压目录的bin目录下,改名为:nacos-service.exe,exe是后缀
4、在bin目录下输入cmd,打开命令行,输入:nacos-service.exe install
5、在cmd命令行输入:net start nacos,启动服务
3、服务的查看与开启关闭
1、查看
win + R
输入:services.msc
2、开启关闭服务
1
2
|
net start nacos
net stop nacos
|
其他中间间仅需修改xml即可
Mysql
自带脚本运行即可
RabbitMq
自带脚本运行即可
Redis
自带脚本运行即可
ElasticSearch
自带脚本运行即可
Logstash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<service>
<!-- 唯一服务ID-->
<id>logstash</id>
<!-- 显示服务的名称 -->
<name>Logstash Service</name>
<!-- 服务描述 -->
<description>Logstash服务</description>
<!-- 日志路径 -->
<logpath>C:\Program_Green\Java_env\logstash-8.2.0\logs\</logpath>
<!-- 日志模式 -->
<logmode>roll</logmode>
<!-- 可执行文件的命令 -->
<executable>C:\Program_Green\Java_env\logstash-8.2.0\bin\ry-cloud-aa-comp_start.cmd</executable>
<!-- <executable>C:\Program_Green\Java_env\logstash-8.2.0\bin\logstash.bat</executable> -->
<!-- <arguments>-f C:\Program_Green\Java_env\logstash-8.2.0\ry-cloud-aa-comp\config\config.conf - -path.data=C:\Program_Green\Java_env\logstash-8.2.0\ry-cloud-aa-comp\data\</arguments> -->
<!-- 停止可执行文件的命令 -->
<stopexecutable>C:\Program_Green\Java_env\logstash-8.2.0\bin\logstash_stop.bat</stopexecutable>
</service>
|
ry-cloud-aa-comp_start.cmd
1
2
|
cd C:\Program_Green\Java_env\logstash-8.2.0\bin
logstash.bat -f C:\Program_Green\Java_env\logstash-8.2.0\ry-cloud-aa-comp\config\config.conf --path.data=C:\Program_Green\Java_env\logstash-8.2.0\ry-cloud-aa-comp\data\
|
logstash_stop.bat
根据jps找java进程,拿到进程号startkill掉
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@echo off
set program=org.logstash.Logstash
echo program: %program%
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %program%`) do (
set pid=%%a
set image_name=%%b
)
if not defined pid (echoprocess%program% does not exists) else (
echo prepare to kill %image_name%
echo startkill %pid% ...
rem 根据进程ID,kill进程
taskkill /f /pid %pid%
)
|
ElasticHD
直接startkill掉进行关闭
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<service>
<!-- 唯一服务ID-->
<id>elastic_hd</id>
<!-- 显示服务的名称 -->
<name>ElasticHD Service</name>
<!-- 服务描述 -->
<description>ElasticHD服务</description>
<!-- 日志路径 -->
<logpath>C:\Program_Green\Java_env\ElasticHD\logs\</logpath>
<!-- 日志模式 -->
<logmode>roll</logmode>
<!-- 可执行文件的命令 -->
<executable>C:\Program_Green\Java_env\ElasticHD\ElasticHD.exe</executable>
<!-- 停止可执行文件的命令 -->
<stopexecutable>taskkill -f -PID ElasticHD.exe</stopexecutable>
</service>
|
Nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<service>
<!-- 唯一服务ID-->
<id>nginx</id>
<!-- 显示服务的名称 -->
<name>Nginx Service</name>
<!-- 服务描述 -->
<description>Nginx服务</description>
<!-- 日志路径 -->
<logpath>C:\Program_Green\Java_env\nginx-1.20.2\logs\</logpath>
<!-- 日志模式 -->
<logmode>roll</logmode>
<!-- 可执行文件的命令 -->
<executable>C:\Program_Green\Java_env\nginx-1.20.2\nginx.exe</executable>
<!-- 停止可执行文件的命令 -->
<stopexecutable>C:\Program_Green\Java_env\nginx-1.20.2\nginx.exe -s stop</stopexecutable>
</service>
|
Jar包
1
2
3
4
5
6
7
8
9
10
|
<service>
<id>test</id> <!-- 服务id,必须唯一 -->
<name>test</name> <!-- 服务名称 -->
<description>测试</description> <!-- 服务描述 -->
<executable>java</executable>
<arguments>-jar D:\test.jar</arguments> <!-- 指定jar包的路径 ,启动命令 -->
<logpath>.\log</logpath> <!-- 日志路径 -->
<startmode>Automatic</startmode> <!-- 设置服务自动启动 -->
<logmode>reset</logmode>
</service>
|
执行成功,会生成一个log 文件夹,到windows 服务中查看,test 服务已经创建成功。
minio
1
2
3
4
5
6
7
8
9
|
<service>
<id>minio</id>
<name>minio</name>
<description>minio服务端</description>
<executable>d:\minio\start.bat</executable> <!-- 指定bat文件的路径 -->
<logpath>.\log</logpath>
<startmode>Automatic</startmode>
<logmode>reset</logmode>
</service>
|
我的脚本
启动
1
2
3
4
5
6
7
8
|
net start mysql
net start redis
net start nacos
net start RabbitMQ
net start elasticsearch-service-x64
net start elastic_hd
net start logstash
net start nginx
|
关闭
1
2
3
4
5
6
7
8
|
net stop nacos
net stop redis
net stop mysql
net stop RabbitMQ
net stop elasticsearch-service-x64
net stop elastic_hd
net stop logstash
net stop nginx
|
删除服务
1
|
winsw uninstall [<path-to-config>] [--no-elevate]
|
path-to-config:配置文件路径。如果未指定文件,WinSW 将在可执行目录中搜索。具有相同文件名但没有扩展名的 xml 文件。
–no-elevate:不自动处罚UAC提示