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

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)

相关推荐

  • Win7程序怎么设置自动运行

    当我们在使用电脑忙碌很多事情的时候,如果能够预先给Win7纯净版设置好自动运行的程序,这样会们的工作负担,而且在一定程度上利用电脑的自动化来帮助我们完成不少的工作,这是一件非常棒的事情来的.那么今天小 ...

  • 使Linux系统上的程序开机后自动运行

    Linux有自己一套完整的启动体系,抓住了Linux启动的脉络,Linux的启动过程将不再神秘。 阅读之前建议先看一下附图。 本文中假设inittab中设置的init tree为: /etc/rc.d ...

  • 开机自动运行程序

    现在跟大家分享开机自动运行程序.如何开机自动运行程序.开机自动运行程序设置,如何设置关机王定时关机软件开机自动运行程序.我们都知道,开机自动运行程序,也就是设置程序随服务方式自启动,一方面大大方便了程 ...

  • Windows 7任务计划帮你自动运行程序

    如果你的电脑经常需要自动运行一些程序,例如定时备份,预先设定的录像节目,与其苦苦想着设置的时间,倒不如预先设置电脑自动运行,免除后顾之忧.Windows一直都有内置的任务计划程序,可在Windows ...

  • 怎样设置Windows系统自动运行程序

    有的时候忙,或者不想一直浪费时间操作电脑.可以预先设置电脑自动运行.Windows都有内置的任务计划程序,可在Windows 7中的任务计划程序,可以让工作的进行更加自动化.用户除了设置定时运行某项任 ...

  • Windows XP/2003系统服务备份与保护

    在对系统服务进行配置管理以前,对其进行备份是相当重要的,一旦出现错误可以马上恢复到正常状态。这里,我们介绍直接备份注册表中与服务相关的内容。 1. 备份系统服务 在对系统服务进行配置管理以前,对其进行 ...

  • windows 10系统关闭自动维护功能避免系统卡顿

    目前,windows10技术预览版已经开放升级了,不少尝鲜用户为自己的爱机升级系统。windows10延续了windows8的自动维护功能,在一定时间内进行更新、杀毒以及系统诊断等,但会出现CPU、磁 ...

  • 实现Win7自动运行程序

    Windows 7系统中的任务计划程序可以对电脑进行预设置以达到自动运行的效果,这个程序的好处是用户不仅可以设置定时的自动运行,还可以进行例外设置,使程序自动化运行的弹性更大. 步骤/方法 01 Wi ...

  • Win10系统打开任务计划程序用它来定时自动运行程序

    任务计划程序对不少人来说是一个重要的工具,小编就曾很长一段时间依靠它来定时自动运行程序。如今Win10系统已经发布,Win10上的任务计划程序又该如何打开呢?跟小编一起来看看。 操作步骤 第一步、鉴于 ...