先说下脚本/我们启动的一些三方服务转window本机服务目前我了解到的好处
- 一键设置开机自启、随用随启、延时自启
- 解决一些服务类应用启动后会阻塞当前dos窗口导致桌面一直要开着的问题
- 脚本化服务注册,方便管理,统一运维
- ...
1. 实践涉及内容介绍
- 编写好的待执行的bat脚本。
- 安装nssm。用来将bat脚本注册为服务的工具软件,我直接用sc命令添加bat为服务遇到的问题是启动服务抱1053错误。
2. 实践教程(bat执行jar包举例)
-
程序相关
-
脚本
demo.bat
(直接启动jar包)java -jar C:\Users\xubin\IdeaProjects\testapp\target\testapp-1.0-SNAPSHOT.jar
简单介绍下jar包是干嘛的,方便后面看效果理解。这个包监听8080端口起了一个tcp服务,对访问者返回
thanks
+访问次数
。
这里要提的一点是如果直接运行该命令会阻塞当前dos窗口不能关闭,关闭的话启动的进程也会停止。转成服务的话就不会有窗口弹出。 -
-
安装nssm
http://www.nssm.cc/download
添加nssm到电脑环境变量(不必须,但是如果不懂环境变量是什么就照做吧~)
安装完自检一下打开cmd输入nssm有输出不报错就可以了 -
注册服务
管理员模式打开cmd,输入nssm install "起一个服务名,自己定,不需要引号"
并回车,如下图
按照如图步骤操作即可完成安装服务。到这里我们已经达到将脚本转为服务的目的了
-
尝试启动服务
打开服务管理,左下角搜索栏输入service
就会显示服务应用了,然后找到我们添加的服务,如上面我起的名字是demoName
,找到后鼠标右键单击打开属性面板如下图
点击启动服务即可。 -
效果展示
结合上面对我这个jar包的介绍,我其实是开了一个socket服务端,我这里测试看效果使用的nc
命令工具,可以看到能正常访问。到这里我们达成将脚本转为服务并能成功启动的目的
。
最后提一下window10使用nc
的一个坑,下载完软件要么关闭你的安全软件(不止一个可能),要么添加压缩文件以及解压后的目录为信任文件及文件夹,不然无法使用,一直报拒绝访问,并且可执行文件也会被自动隔离,看上去就是自动被删除的效果