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

所属分类: 软件教程 / 系统工具 阅读数: 579
收藏 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这样的命令启动和关闭服务。更重要的是,没有那个既不美观又烦人的命令提示符窗口。

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

鲁大师wifi共享怎么让手机电脑共享无线网络

鲁大师wifi共享,一键设置,即可让手机电脑共享无线网络,针对笔记本的,如果是台式机想实现无线WiFi,还需配备一个随身wifi哦
收藏 0 赞 0 分享

怎么检测电脑硬盘好坏?鲁大师检测硬盘好坏方法

电脑硬盘是关键,那么我们怎么知道自己电脑的硬盘是好是坏呢?下文小编就教使用鲁大师检测硬盘好坏的方法,这是新版鲁大师的功能,一起去看下鲁大师检测硬盘好坏方法吧
收藏 0 赞 0 分享

VMware和XAMPP同占用443端口发生冲突导致无法使用的解决办法图解

安装XAMPP后再安装VMware Workstation,我们就会发现XAMPP的Apache启动不了了,出现这个原因似乎是VMware Workstation占用了443端口导致冲突引起的,那么如何解决这个问题,其实这样VMware改一下端口就可以了,针对此问题,本文就为大家
收藏 0 赞 0 分享

VMware虚拟机运行时提示"内部错误"的解决办法介绍

VMware虚拟机提示内部错误是怎么回事?如何解决?运行已有的虚拟机,弹出“内部错误”,无法运行虚拟机。重装几次也不行,针对此类问题,本文就为大家介绍VMware虚拟机运行时提示
收藏 0 赞 0 分享

搜狗壁纸怎么整理桌面?搜狗壁纸的格子怎么取消

搜狗壁纸除了可以给桌面换壁纸外,另外一个功能也是非常强大,那就是整理桌面,搜狗壁纸的功能变得越来越实用
收藏 0 赞 0 分享

2345安全卫士安装及其功能使用图解

2345安全卫士是集电脑体检、木马查杀、修复漏洞、优化加速、垃圾清理以及软件管家为一体的电脑安全管理的软件,下面为大家介绍下软件安装及进入主界面、软件功能介绍以及使用方法
收藏 0 赞 0 分享

ppt美化大师卸载不了怎么办?ppt美化大师卸载方法

很多朋友想要卸载ppt美化大师却怎么也卸不掉,今天小编就为大家带来ppt美化大师的卸载方法,需要的朋友可以一起看看
收藏 0 赞 0 分享

ppt美化大师怎么样?好用吗?ppt美化大师使用图文教程

ppt美化大师让用户在制作ppt的时候可以最大程度的美化,功能强大,让你的ppt瞬间变得高大上了,下文小编就为大家带来ppt美化大师的使用教程
收藏 0 赞 0 分享

腾讯电脑管家如何粉粹文件粉粹删不掉的文件

电脑上想删除的文件删不掉,只有强制删除了,粉碎。腾讯电脑管家有粉碎文件的工具,下面与大家分享下其具体的使用
收藏 0 赞 0 分享

虚拟机vmware安装fedora20图文教程(解决直停滞问题)

下面脚本之家小编为大家带来虚拟机vmware安装fedora20图文教程,希望对大家有所帮助
收藏 0 赞 0 分享
查看更多