winsw.exe 注册服务
如果能给你带来帮助,不胜荣幸,如果有错误也请批评指正。共同学习,一起进步
其实一般情况下,大部分可以启动就可以了,如果因为特殊情况必须得服务启动,那么就可以注册服务
我使用的是winsw.exe,因此需要先下载安装.net framework 4 安装地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=17718
简单的说几个小例子:
第一:使用winsw.exe注册服务,首先需要下载winsw.exe,推荐大家去这两个地方下载
下载地址:1 http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/
2 https://github.com/winsw/winsw/releases
当然不考虑安全性,你想去那里下载都可以。
第二:编写配置文件并进行注册
1 注册jar,如果你的服务是springboot等打包之后为jar
需要把下载好的WinSw.exe文件放到你需要打包的jar的同级目录下,然后创建一个xxx.xml文件(xxx和你的WinSw.exe文件同名)
内容如下:
<?xml version="1.0" encoding="utf-8" ?> <service> <id>xxxxx</id> <name>xxxxx</name> <description>xxxxx</description> <env name="xxx_HOME" value="C:\jdk-1.8.0\bin\"/> <executable>java</executable> <arguments>-jar "xxxxxx.jar" --spring.profiles.active=prod</arguments> <log mode="roll"></log> </service>
<id>指定Windows内部用户标识服务 在系统安装的所有服务中id 必须是唯一的,并且完全由字母数字字符组成。
<name> 服务的简短显示名称,可以包含空格和其他字符;在系统的所有服务中name也必须是唯一的。
<descrption> 对服务的完整描述。
<env> 为子进程设置环境变量,可以使用多次从而设置多个变量单标签,通过name和value两个属性设置环境变的值
<executable> 该元素指定要启动的可执行文件 可以是绝对路径,也可以只指定可执行文件名称并从PATH中搜索
<arguments> 该标签指定的参数传递给可执行文件,多个参数以空格隔开
<log> :
该标签的mode属性指定从启动过程中捕获stdout和stderr的几种不同的方法:
append:追加模式
reset:重设模式,每次服务启动时,旧的日志文件都会被截断
roll-by-size:按日志文件大小滚动,日志大于指定大小后重新生成新的日志文件进行写入,日志文件名最后以阿拉伯数字区分;
嵌套sizeThreshold标签指定日志文件多大时生成新日志文件,单位为KB;
嵌套keepFiles标签指定最多要保留的日志文件数;
roll-by-time:按日志文件时间段滚动
必须嵌套pattern标签指定日志文件名的时间标记格式,例如yyyyMMdd HH:mm
roll-by-size-time:按日志文件大小和时间模式滚动
嵌套sizeThreshold标签指定日志文件多大时生成新日志文件,单位为KB
嵌套pattern标签指定当日志文件文件名最后的区分字段格式(时间格式,如yyyyMMdd HH:mm)
嵌套autoRollAtTime标签指定每天在指定时间进行日志滚,例如00:00:00表示每天凌晨进行日志滚动
其次需要使用管理员的身份打开小黑框 找到jar和winsw.exe文件所在的目录下,输入 winsw.exe install 进行注册服务 ;
如出现 successfully等字样表示注册成功;可打开任务管理器进行查看
如果报错,请检查xxx.xml文件名称是否和xxx.exe文件名相同。或者xxx.xml文件内容是否正确
2:将nginx注册为服务
步骤不变,xml内容更改为:
<?xml version="1.0" encoding="utf-8" ?>
<service> <id>xxxxxx</id> <name>xxxxxx</name> <description>xxxxx</description> <logpath>E:\well\nginx-1.19.6\</logpath> <logmode>roll</logmode> <depend></depend> <executable>E:\nginx-1.19.6\nginx.exe</executable> <stopexecutable>E:\nginx-1.19.6\nginx.exe -s stop</stopexecutable> </service>
标签相同的不再复述
<executable>应启动的可执行文件的路径
<stopexecutable> 这个我不清楚该怎么解释,因为官方文档显示为:停止可执行文件 一个可选可执行文件的路径,用于执行服务的关闭。我的翻译菜的抠脚,大家可以自行去sqmple-allOptions.xml里面去看看,比我说的有用
如果想知道更多的标签及其内容:请大家前往官网 查看全部配置(sample-allOptions.xml)或者简化配置(sample-minimal.xml)
3:注册redis,除了注册nginx和jar之外,如果大家集成了其他的CAS或者是其他的AUTH等打成了jar均可以通过上面类型进行部署
用管理员打开dos小黑框,进入redis的目录下
命令:redis‐server.exe ‐‐service‐install 配置文件 ‐‐service‐name 服务名 ‐‐port 服务端口 可以注册成服务
如果你只需要注册服务,对端口什么的都没有任何要求可以使用简化写法:
命令:redis‐server.exe ‐‐service‐install
同理都是去任务管理器当中查看是否注册成功。