欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

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

程序员文章站 2022-03-27 14:27:14
用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的配置文件。文件大体上长这样,这是官网的例子。
 

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

注册服务

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

winsw install

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

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

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

相关标签: winsw 服务