在linux中,我们经常会用nohup等命令来将部分可执行的命令放到后台运行,即使运行窗口关闭了程序也照常运行,但是在windows中,如果下载的程序本身没有提供后台运行的支持,那么我们就得一直保持着窗口不关闭,当服务器重启或者其他原因导致的窗口关闭时,程序就直接停止了,实际上我们可以利用一些程序来将这些程序做成一个windows服务(开机自动启动)
这边我使用filebeat服务(文件内容变动采集)作为示例,其他的服务请自行参考修改。
filebeat的启动命令为filebeat.exe -e -c filebeat.yml
,启动后会有一个程序占用着cmd窗口,cmd关闭则程序关闭
我们将winsw.exe 复制到文件夹目录修改为
filebeat-server.exe
(自己定义),再新增filebeat-server.xml
。一般修改id,name,description,executeable,arguments 即可,executeable+argumens组成执行命令
<service>
<id>filebeat-server</id>
<name>filebeat-server</name>
<description>filebeat文件变更捕获</description>
<!-- 可设置环境变量 -->
<env name="HOME" value="%BASE%"/>
<executable>%BASE%\filebeat.exe</executable>
<arguments>-e -c filebeat.yml</arguments>
<!-- <logmode>rotate</logmode> -->
<logpath>%BASE%\logs</logpath>
<log mode="roll-by-size-time">
<sizeThreshold>10240</sizeThreshold>
<pattern>yyyyMMdd</pattern>
<autoRollAtTime>00:00:00</autoRollAtTime>
<zipOlderThanNumDays>5</zipOlderThanNumDays>
<zipDateFormat>yyyyMMdd</zipDateFormat>
</log>
</service>
我们在当前目录打开cmd,执行
filebeat-server.exe install
可以看到已经安装成功了
接下来我们打开服务窗口,已经可以看到filebeat服务了,接下来就按照服务的使用方式使用即可
完整命令请参考github仓库