windows本来自带sc命令,但是如果直接使用sc命令指定可执行文件,那么那个可执行文件需要按照windows的要求编写固定输出,加大了程序员的开发任务。这里向大家推荐一款第三方工具winsw,将他作为代理,不止能方面的创建任务,还能自动搜集运行log以及滚动保存,推荐大家使用。
下载地址:传送门,我们这里以WinSW v2.11.0来给大家讲解。
链接中有5个已经编译好的文件,其中WinSW-x64.exe与WinSW-x86.exe无系统依赖,可运行在 没有安装.net环境的windows电脑中,但文件体积较大。而WinSW.NET2.exe、WinSW.NET4.exe、WinSW.NET461.exe需要运行在安装了.net包的运行环境中,但是文件较小。
首先将其中一个可以运行的文件修改文件名为WinSW.exe。然后在同级目录下创建一个xml文件内容如下:
<service> <id>gotest</id> <name>gotest</name> <description>go语言编写的测试程序。</description> <executable>gotest</executable> # 执行的命令,需要在同级目录或是环境变量中,否则请写完整路径 <arguments>-run</arguments> # 执行命令的参数,可选,如果没有就不选。 <workingdirectory>G:\BaiduNetdiskDownload\gotest</workingdirectory> # 程序工作目录,可选,默认为winsw同级目录 <log mode="roll-by-size-time"> # log保存模式 <logpath>G:\BaiduNetdiskDownload\gotest\logs</logpath> # 可以不选。如果不选,默认为winsw同级目录。如果选,必须完整路径。 <sizeThreshold>10240</sizeThreshold> # 超过10M创建新文件 <pattern>yyyyMMdd</pattern> # 保存log的格式 <autoRollAtTime>00:00:00</autoRollAtTime> # 每天00:00:00创建新文件 </log> <depend>Tcpip</depend> # 服务的依赖,有几个就写几个。 <depend>Dhcp</depend> <onfailure action="restart" delay="10 sec"/> # 设置程序异常退出后该做什么事,如重启服务,重启电脑,什么都不做,还可以设置延时 <serviceaccount> # 不使用administrator账号运行指定特定账户运行,通常不需要使用。 <username>DomainName\UserName</username> <password>Pa55w0rd</password> <allowservicelogon>true</allowservicelogon> # 可选项,通常不选,设置为true则自动设置该账户允许登录系统 </serviceaccount> </service>
最后展示一份简单常用的配置
<service> <id>gotest</id> <name>gotest</name> <description>go语言编写的测试程序。</description> <executable>gotest</executable> <log mode="roll-by-size-time"> <logpath>G:\BaiduNetdiskDownload\gotest\logs</logpath> <sizeThreshold>10240</sizeThreshold> <pattern>yyyyMMdd</pattern> <autoRollAtTime>00:00:00</autoRollAtTime> </log> </service>
文章作者:沃航科技