人生若只如初见

WXY

让Windows程序运行为服务

2022-08-10

前言

我们使用windows系统的电脑的时候,可能会遇到这么一种情况:想把一些应用程序添加为开机启动项。
本文示例使用是把一个exe程序注册为服务,同样的jar程序或者其他程序方法是通用的。

方式一

使用winsw来注册Windows服务

下载

GITHUB

下载完之后最好把文件改成一个比较短小的名字,例如:WinSW.exe 方便后面输入命令时使用。

修改配置文件

我们需要编写一个和程序同名的XML文件作为WinSW的配置文件
winsw.xml

<service>
    <id>elm</id>
    <name>饿了么</name>
    <description>饿了么自动任务,自动兑换。</description>
    <executable>elm.exe</executable>
    <arguments>-debug</arguments>
    <logmode>reset</logmode>
</service>
配置项说明
id

指定在Windows系统内部使用的识别服务的ID。在系统中安装的所有服务中,这必须是唯一的,它应该完全由字母数字字符组成。

name

服务的简短名称,它可以包含空格和其他字符。尽量简短,就像“id”一样,在系统的所有服务名称中,也要保持唯一。

description

该服务可读描述。当选中该服务时,它将显示在Windows服务管理器中。

executable

该元素指定要启动的可执行文件。它可以是绝对路径,也可以指定可执行文件的名称,然后从环境变量“PATH”中搜索(需要注意的是,服务经常在不同的用户账户中运行,因此它可能需要有不同于你设置在环境变量Path中的路径)。

argument

该元素指定要传递给可执行文件的参数。

如果有必要,Winsw会给每一个参数外加引号(“”),所以为了避免双重引号,尽量不要在参数中使用引号。

logmod

<logmode>reset</logmode>
截断,每次重启都会清空之前日志
logmode官方参考

注册服务

Snipaste_2022-08-10_15-25-34

注册成功

Snipaste_2022-08-10_15-19-09

常用命令

Command Description
install 注册服务
uninstall 卸载服务
start 启动服务
stop 关闭服务
restart 重启服务
status 查看状态

xml配置官方参考

灵活变通

Snipaste_2022-08-10_15-43-43

方式二

使用nssm来注册Windows服务

下载

官网

服务安装:

cmd窗口执行nssm install弹出图形化界面
Snipaste_2022-08-10_15-45-24

都是小学英语单词,我相信你们能看的明白。
填好之后点击 install service 按钮。

服务管理:

服务管理主要有启动、停止和重启,其命令如下:

启动服务: nssm start <servicename>
停止服务: nssm stop <servicename>
重启服务: nssm restart <servicename>

当然也可打开任务管理器的服务进行管理,或者系统服务来管理。

更详细的教程