分享

在Windows系统上,使用WinSW配置安装成系统服务运行kkFileView(自启动)

kkFileView 是一款文件在线预览的开源工具插件,最近公司内部在文件管理方面有涉及到文件的在线预览,因此对接了该开源插件,但是公司服务器基本上都是windows的,好在kkfileview也有win版本的运行包,但是部署使用的是bat运行命令行窗口形式,这样不利于服务的管理和运行,停止或者关闭了命令窗口,服务也随之停止,因此结合自己以往的经验,尝试考虑使用第三方后台服务封装和接管命令行窗口,安装成系统服务,这样可以在后台运行并支持自启动,使服务保持稳定,这里用到的第三方后台服务生成器就是比较有名的Windows Service Wrapper,简称WinSW,可以通过简单的配置文件就将前台命令行式运行的服务改成后台服务,并支持日志输出,以下是具体配置和安装步骤:

1、首先我们看官方对配置文件xml的介绍描述

其中以以下几个配置项最为常见:

id 安装windows服务后的服务ID,必须是唯一的。
name 服务名称,也必须是唯一的。一般和id一致即可
description 服务说明,可以使用中文,可做备注使用
executable 执行的命令,比如启动springboot应用的命令java
arguments 命令执行参数,比如 包路径,类路径等
startmode 启动模式,自动:Automatic
logpath 日志文件路径
log 日志控制,参考

2、服务的安装:

首先将winsw主程序(下载地址)服务器如果是64位就选择64位的WinSW-x64.exe,放到当前kkfileview运行目录,并重命名为:kkfileview.exe

同样在这个目录下也新建一个xml配置文件,文件名为:kkfileview.xml

文件名保持一致

kkfileview的xml配置

<service>
  <!-- jar 包名称-->
  <id>kkfileview-4.9</id>
  <!-- 服务名称-->
  <name>kkFileViewService</name>
  <!-- 服务描述-->
  <description>This service runs kkfileview continuous integration system.</description>
  <!-- java环境变量 -->
  <env name="JAVA_HOME" value="%JAVA8_HOME%"/>
  <env name="KKFILEVIEW_BIN_FOLDER" value="%BASE%\bin"/>
  <env name="Dfile.encoding" value="UTF-8"/>
  <env name="Dspring.config.location" value="%BASE%\config\application.properties"/>
  <!--运行方式-->
  <executable>java</executable>
  <!--执行参数,kkfileview.bat引申而来-->
  <arguments>-Dfile.encoding=UTF-8 -Dspring.config.location=%BASE%\config\application.properties -jar %BASE%\bin\kkFileView-4.9.jar -> %BASE%\log\kkFileView.log</arguments>
  <!-- 启动模式,开机启动 -->
  <startmode>Automatic</startmode>
  <priority>Normal</priority>
  <!-- 日志位置 -->
  <logpath>%BASE%\Service-logs</logpath>
  <!--日志重置 (rotate循环追加)-->
  <logmode>reset</logmode>
</service>

当前目录调出cmd窗口,执行以下命令安装服务:

kkfileview.exe install

如出现成功提示,则服务安装成功,可以进入Service-logs日志文件夹查看相关日志:
kkfileview.err.log为后台服务运行的报错记录,安装后服务如果出现错误无法启动可以在这个日志上查看相关信息;
kkfileview.out.log为服务运行后,kkfileview的运行日志(可以理解为替代了原来的命令行日志输出);
kkfileview.wrapper.log则为后台服务本身的运行日志。

至此,可以访问127.0.0.1:8012使用kkfileview服务。

另外附系统后台服务相关的cmd操作命令:

;删除服务
Service.kkfileview.exe uninstall
;启动服务
Service.kkfileview.exe start
;停止服务
Service.kkfileview.exe stop
;重启服务
Service.kkfileview.exe restart
;查看状态
Service.kkfileview.exe status

留言