51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

让Windows程序运行为服务

前言 {#%E5%89%8D%E8%A8%80}

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

方式一 {#%E6%96%B9%E5%BC%8F%E4%B8%80}

使用winsw来注册Windows服务

下载 {#%E4%B8%8B%E8%BD%BD}

GITHUB

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

修改配置文件 {#%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6}

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

<service>
    <id>elm</id>
    <name>饿了么</name>
    <description>饿了么自动任务,自动兑换。</description>
    <executable>elm.exe</executable>
    <arguments>-debug</arguments>
    <logmode>reset</logmode>
</service>
配置项说明 {#%E9%85%8D%E7%BD%AE%E9%A1%B9%E8%AF%B4%E6%98%8E}
id {#id}

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

name {#name}

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

description {#description}

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

executable {#executable}

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

argument {#argument}

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

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

logmod {#logmod}

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

注册服务 {#%E6%B3%A8%E5%86%8C%E6%9C%8D%E5%8A%A1}

Snipaste_2022-08-10_15-25-34

注册成功 {#%E6%B3%A8%E5%86%8C%E6%88%90%E5%8A%9F}

Snipaste_2022-08-10_15-19-09

常用命令 {#%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4}

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

xml配置官方参考 {#xml%E9%85%8D%E7%BD%AE%E5%AE%98%E6%96%B9%E5%8F%82%E8%80%83}

灵活变通 {#%E7%81%B5%E6%B4%BB%E5%8F%98%E9%80%9A}

Snipaste_2022-08-10_15-43-43

方式二 {#%E6%96%B9%E5%BC%8F%E4%BA%8C}

使用nssm来注册Windows服务

下载 {#%E4%B8%8B%E8%BD%BD-1}

官网

服务安装: {#%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%EF%BC%9A}

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

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

服务管理: {#%E6%9C%8D%E5%8A%A1%E7%AE%A1%E7%90%86%EF%BC%9A}

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

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

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

更详细的教程 {#%E6%9B%B4%E8%AF%A6%E7%BB%86%E7%9A%84%E6%95%99%E7%A8%8B}

赞(0)
未经允许不得转载:工具盒子 » 让Windows程序运行为服务