如何在Windows Server 2012中使用WinSW将BAT脚本变成服务

在日常运维工作中,我们经常会遇到需要将某些脚本长期运行的情况,例如定时清理日志文件、定时备份数据等。在Windows系统中,直接运行BAT脚本通常需要手动执行或者借助计划任务。但将BAT脚本添加为服务后,不仅可以实现自动启动,还能在服务意外停止时自动重启,大大提升了稳定性和可靠性。

本文将以Windows Server 2012为例,详细介绍如何使用WinSW将BAT脚本添加为系统服务,同时探讨类似的开源工具解决方案。


为什么要将BAT脚本添加为服务?

  • 自动化管理:通过服务的方式运行脚本,可以让脚本随系统启动而自动运行,无需人工干预。
  • 便于监控和管理:服务可以通过Windows的服务管理工具进行统一监控和控制,方便排查问题。

从哪里下载WinSW?

WinSW(Windows Service Wrapper)是一个轻量级、功能强大的工具,用于将任意可执行文件(包括BAT脚本)包装成Windows服务。您可以通过以下步骤获取:

  1. 打开WinSW的官方GitHub页面:WinSW GitHub
  2. 在"Releases"页面下载最新版本的WinSW可执行文件。
  3. 根据您的系统架构(x86或x64)选择对应版本。

下载完成后,将可执行文件改名为winsw.exe。建议将其放置在与脚本相同的目录下,以方便后续操作。

针对Windows Server 2012,经过测试可以使用 NET4 版本的包,这里下载 v2.10.3 版本的 NET4 包,下载地址


如何使用WinSW将BAT脚本添加为服务

以下是具体操作步骤:

1. 创建配置文件

WinSW通过XML配置文件定义服务的行为。以下是一个典型的配置文件示例:

<service>
  <id>MyBatService</id>
  <name>My BAT Service</name>
  <description>运行自定义BAT脚本的服务</description>
  <executable>cmd.exe</executable>
  <arguments>/c "winsw_test.bat"</arguments>
  <logmode>roll</logmode>
  <onfailure action="restart" delay="5 sec" />
</service>
  • <id>:服务的唯一标识符。
  • <name>:服务显示名称,便于管理。
  • <description>:服务描述信息。
  • <executable>:要运行的可执行文件,这里是cmd.exe
  • <arguments>:传递给cmd.exe的参数,用于指定要执行的脚本。
  • <logmode>:日志记录模式,这里选择roll表示滚动日志。
  • <onfailure>:定义服务失败后的操作,例如重启服务。

将以上内容保存为winsw.xml,并与winsw.exe存放在同一目录下。只要xml和exe文件的名称一致就可以,因为 winsw.exe install 时会去找同名的 xml 文件。

2. 安装服务

打开命令提示符(以管理员身份运行),导航到WinSW所在目录,并执行以下命令:

winsw.exe install

此命令将根据配置文件注册一个新的Windows服务。

3. 启动服务

安装完成后,可以通过以下命令启动服务:

winsw.exe start

服务启动后,您的BAT脚本将以服务的形式运行。

4. 停止和卸载服务

如果需要停止服务或卸载服务,可以分别使用以下命令:

winsw.exe stop
winsw.exe uninstall
5. 通过服务工具也可以管理服务

在Windows Server 2012中,您还可以通过服务管理工具来查看和管理服务。在“服务”应用程序中,找到并双击“My BAT Service”,即可查看服务的状态并进行启动、停止等操作。

用服务管理工具启动服务时会提示服务异常终止,这里因为我们的测试脚本中只有一个pause命令,所以会异常终止,正常情况下,脚本会一直运行。

6. 服务运行过程中产生的日志

winsw.exe所在目录下,可以找到服务的运行日志。通过查看日志,可以了解服务的运行状态和错误信息。


类似WinSW的其他开源软件

除了WinSW,还有一些其他工具可以实现类似功能:

  1. NSSM(Non-Sucking Service Manager)

  2. AlwaysUp

  3. SrvAny

    • 功能特点:微软提供的旧工具,用于将可执行文件转为服务,但已不再更新。

提示与感谢

在实际部署中,使用WinSW等工具将BAT脚本变为服务是非常实用的技巧。而得益于三丰云免费云服务器的稳定性,我们可以轻松搭建Windows Server环境并进行测试。如果您也需要高性价比的主机资源,可以访问三丰云官网,了解更多关于免费虚拟主机免费云服务器的信息。


通过上述方法,您可以快速将BAT脚本添加为Windows服务,提高系统自动化程度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值