用winsw将Windows程序作为系统服务自动运行

所属分类: 软件教程 / 系统工具 阅读数: 667
收藏 0 赞 0 分享

winsw介绍

有时候我们需要在Windows下开机运行某些程序,这对于有图形界面的程序来说一般不是什么事,在选项中选中开机启动,然后它们就可以自动运行了。但是如果我们想运行一些命令行程序的话就没这么方便了。

原来我的做法是写一个bat脚本,然后将它的快捷方式复制到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,这样就可以开机自启了。不过这种方式有一个非常大的缺点,就是开机之后会显示一个命令行窗口!而且这个窗口还不能关,一关程序就停了。

其实Windows自带了一个后台程序管理的功能,就是我们经常用到的服务。但是Windows的服务只有程序的开发者在写程序的时候引用到这个功能,我们才能利用服务来控制程序的启动和关闭。对于一般的命令行程序来说,没办法利用服务。所以今天我们就来使用一下标题的这个winsw。它可以将Windows上的任何一个程序注册为服务,如果不需要,也可以方便的卸载服务。

使用winsw

首先要下载winsw。它是一个单个的可执行文件,我们到Github release这里就可以下载winsw了。一般来说当然是下载最新的。winsw可以运行在.NET2和.NET4两个版本上,当然如果使用Win10等比较新的系统,最好下载更新版本的.NET。

下载完之后最好把文件改成一个比较短小的名字,例如winsw.exe这样的,方便后面输入命令。

编写配置文件

我们需要编写一个和程序同名的XML文件作为winsw的配置文件。文件大体上长这样,这是官网的例子。
 

 <service>
      <id>jenkins</id>
      <name>Jenkins</name>
      <description>This service runs Jenkins continuous integration system.</description>
      <env name="JENKINS_HOME" value="%BASE%"/>
      <executable>java</executable>
      <arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
      <logmode>rotate</logmode>
    </service>

看到XML的标签名,我想大家也能猜到这些参数是干嘛的,所以我就不介绍了。下面是我的一个配置文件例子。

<service>
    <id>kcp</id>
    <name>kcp</name>
    <description>这个服务用来将ss使用kcp协议加速</description>
    <executable>client_windows_amd64</executable>
    <arguments>-c kcp-config.json</arguments>
    <logmode>reset</logmode>
</service>

注册服务

编写好配置文件之后,记得把配置文件和可执行文件放在一起,这样winsw才能正确识别配置文件。然后我们打开一个管理员权限的命令提示符或Powershell窗口,然后输入下面的命令,如果返回值为0,说明已将程序注册为服务。

winsw install

然后打开Windows的服务,我们可以看到这下已经出现了注册的服务,我们可以像一般服务那样开启、关闭它。
 

 

如果不再需要这个服务,使用winsw uninstall即可卸载服务。当然还有诸如start、stop这样的命令启动和关闭服务。更重要的是,没有那个既不美观又烦人的命令提示符窗口。

更多精彩内容其他人还在看

冰点还原精灵如何卸载,冰点还原精灵卸载方法图文方法

有很多网友说装了冰点还原精灵后想卸载,可又不知道怎么卸?网上下的工具不是报毒就是用不了,在这里小编详细图文教您们一遍。
收藏 0 赞 0 分享

冰点还原精灵图解安装使用方法(安装,卸载)

冰点还原精灵(DeepFreeze)是由Faronics公司出品的一款系统还原软件,它可自动将系统还原到初始状态,保护系统不被更改,能够很好的抵御病毒的入侵以及人为的对系统有意或无意的破坏
收藏 0 赞 0 分享

VMware vSphere最低内存2G的限制的解决方法

VMware vSphere对硬件的要求比较高,但是对于测试系统来说我们是希望配置要求越低越好,CPU的要求卡死在哪里,必须要64位系统,安装客户机必须要支持VT技术才能安装64位的,这些是没什么好商量的
收藏 0 赞 0 分享

如何给虚拟机提速

虚拟机为计算机提供虚拟硬件,可以在一台电脑上同时运行多个虚拟的操作系统。与此同时,它对电脑的配置要求也比较苛刻(尤其是内存与处理器)。
收藏 0 赞 0 分享

鲁大师设置代理服务器的完整步骤(图文教程)

鲁大师也可以设置代理服务器的
收藏 0 赞 0 分享

鸟叔来袭 你电脑的驱动hold住了吗

本文为如何安装使用驱动人生的教程
收藏 0 赞 0 分享

鲁大师设置开机启动和禁止自动升级的方法

在本文中我们将会看到的是鲁大师如何设置开机启动和禁止自动升级的方法
收藏 0 赞 0 分享

用虚拟机玩游戏的经验总结

本文介绍了如何用虚拟机来玩游戏
收藏 0 赞 0 分享

使用RAM Disk将IE临时文件夹移动到内存,加快IE浏览速度[图文]

今天我们向大家介绍一款非常有意思的软件RAM Disk,它可以将内存变成硬盘使用,是一直比较高级的使用方法。当然硬盘的容量相比内存要大得多,为什么还要将内存当硬盘使用呢
收藏 0 赞 0 分享

DevCon 命令行实用工具可替代设备管理器 devcon.exe使用说明

DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 还提供与驱动程序开发人员有关、但无法在设备管理器中看到的信息
收藏 0 赞 0 分享
查看更多