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

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

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

驱动精灵2015版本中更新显卡时出现蓝屏现象的解决方法

驱动精灵2015版本中,更新了显卡,却出现了蓝屏的现象,这是怎么回事,该怎么解决呢?下面有个不错的解决方法,遇到的朋友可以看看哦
收藏 0 赞 0 分享

Win8系统首次启动出现黑屏硬盘灯不亮怎么解决?

本文主要介绍了Win8系统首次启动时黑屏硬盘灯不亮的解决方法,针对近期大多数体验win8系统的用户出现了头疼问题,win8关机状态下,第一次启动过了LOGO画面黑屏,硬盘灯不亮,其他指示灯正常。必须手动硬关机,然后再开机,第二次启动正常的情况,需要的朋友可以参考下
收藏 0 赞 0 分享

腾讯电脑管家免打扰模式的使用介绍(问答式)

免打扰模式是什么,你知道吗?若在免打扰模式下电脑还能受到保护吗?下面以问答的形式与大家分享下这些不知道的知识
收藏 0 赞 0 分享

内存卡被无意中格式化怎么办 顶尖数据恢复软件教你快速数据恢复方法

大家都知道,我们的手机中保存了各种重要的信息,比如短信、通讯录、照片等等,一旦手机内存卡被格式化,所造成的损失是无法估计的。对于这种情况,大家该如何解决呢
收藏 0 赞 0 分享

驱动精灵Realtek音频驱动更新重启一次便可完成

遇到电脑的声卡驱动不能够使用,那么就要重新下载声卡驱动。Realtek瑞昱的HD Audio音频驱动又一次更新了,但遗憾的是仍然没有什么实质内容
收藏 0 赞 0 分享

电脑硬盘损坏怎么办 电脑硬盘数据恢复图文教程

随着信息技术的发展,计算机越来越广泛的应用到各个领域。作为计算机中数据存储和交换的主要设备,大容量、高密度硬盘上保存了大量重要的资料和数据信息
收藏 0 赞 0 分享

Windows8系统Metro界面下的多多五笔输入法使用介绍

这篇文章主要介绍了Windows8系统Metro界面下的多多五笔输入法使用介绍,本文意在解决常见五笔输入法不能在Metro界面正常使用的情况,需要的朋友可以参考下
收藏 0 赞 0 分享

去掉任务栏输入法键盘图标后面帮助等其他图标的方法

这篇文章主要介绍了去掉任务栏输入法键盘图标后面帮助等其他图标的方法,Win7任务栏输入法键盘图标后面默认至少会有一个帮助图标,没有什么作用而且会占着一个位置,让有强迫症的小编昼心里也会不舒服,使用本文方法就可以解决这个问题啦,需要的朋友可以参考下
收藏 0 赞 0 分享

推荐三款小巧免费的文件占用\进程占用解锁工具

经常捣鼓电脑的人应该对“无法删除:文件正在被另一个或程序使用”的提示并不陌生,这是因为我们所要删除的文件或文件夹正在被某些程序占用的原因,不过即使我们关闭了正在占用这些文件/文件夹的程序,也不一定能够100%顺利删除
收藏 0 赞 0 分享

四种干干净净卸载伸出Windows Search的方法

为什么Windows Search 卸载不了?不少网友们都反映Windows Search4.0 安装非常容易,但是卸载却让人费解,卸载不干净,下面分享四种干干净净卸载伸出Windows Search的方法
收藏 0 赞 0 分享
查看更多