设置程序以服务启动-WinSW
本文最后更新于:2024年12月10日 下午
项目地址 👈
前言 👈
WinSW 可以将任何应用程序包装和管理为 Windows 服务。
下载建议 👈
我的电脑上是 Windows Server 2022,下载的版本是 WinSW-net461.exe
为了方便后续的操作,下载后建议重命名为 winsw.exe。
编写配置文件 👈
官方提供了XML 配置文件规范和一些配置文件示例,里面有所有配置项和详细的注释。对于简单的使用不需要那么复杂,所以我对其进行了精简:
1 |
|
配置项说明:
-
id
- 服务的ID。必须在所有服务中是唯一的,由字母数字字符组成。 -
name
- 服务的显示名称。可以和id
一样,也需要在所有服务中是唯一的,可以包含空格和其他字符。 -
description
- 描述。随便写,自己明白就行,或者不写也行。 -
env
- 环境变量,按需填写。 -
executable
- 可以是程序文件名,也可以是绝对路径。推荐放和程序在一起,直接写文件名就行。 -
arguments
- 程序的启动参数,有就写,没有就删除。 -
log mode
- 日志模式。默认是追加模式(append
),即无限制写入。如果不想让日志变得无限大建议设置为reset
。不需要日志则设置为none
。
创建一个与 winsw 程序本体名称一致的.xml
后缀的空白文档,如果 winsw 程序本体是 winsw.exe
,那么配置文件命名为 winsw.xml
,放在一起,然后把上面的内容复制进去,然后按需求进行修改。
下面是我编写的某个配置文件:
1 |
|
注册服务 👈
默认配置文件注册
写完配置文件,确定程序和 winsw.exe
、winsw.xml
在同一路径下,在这个路径以管理员权限打开 cmd
或者 Powershell
,输入 winsw.exe install
,如果不出意外,会输出一下信息:
1 |
|
UnblockNeteaseMusic
这里的字符应该是你自己写的程序的id
,这里仅用于演示。
指定配置文件注册
与默认配置不同一点是,指定配置文件只需在 winsw.exe install
命令后加上 xml
文件名称,如 winsw.exe install myapp.xml
与
winsw.exe
不在同目录下需要加上文件路径可在命令后加入自定义选项,选项详情参考官方示例
启动服务 👈
输入 winsw.exe start
启动服务,这样程序就在后台无窗口运行了,重启开机也会无窗口自动启动。停止运行则输入 winsw.exe stop
。你也可以在 Windows
的任务管理器或者服务中管理这个程序的服务。
同样,指定配置文件启动,请输入
winsw.exe start myapp.xml
查看服务状态 👈
输入 winsw status
即可查看服务状态。
同样,指定配置文件查看,请输入
winsw.exe status myapp.xml
卸载服务 👈
如果不再需要这个服务,先停止服务,然后输入 winsw.exe uninstall
即可卸载服务。
同样,指定配置文件卸载,请输入
winsw.exe uninstall myapp.xml