windows把exe程序做成服务

在Windows操作系统中,有时我们需要将常规的EXE程序作为服务运行,这样可以确保程序在后台持续运行且不受用户登录/登出的影响。要实现这个目的,首先我们需要了解什么是Windows服务以及将EXE程序作为服务运行的原理。

**Windows服务简介**

Windows服务是在系统启动时自动运行的后台应用程序,它们不需要用户登录即可工作。服务可以是系统组件,如打印机、文件服务等;也可以是第三方组件,如数据库、备份工具等。Windows服务的主要优点是它们可以在后台运行,不干扰用户的正常工作,且可以启动、停止和配置其运行参数。

**将EXE程序作为服务原理**

Windows服务本质上是一个特殊的EXE程序,实际上它们遵循一些特殊的编程规则和约定。但并非所有的EXE程序都能直接作为服务运行。为了将常规的EXE程序作为服务运行,需要将这些程序与服务控制管理器(Service Control Manager,SCM)连接。这通常需要用到某种工具。当EXE程序与SCM建立联系后,就可以将其作为服务启动、停止和配置。

**将EXE程序作为服务的步骤**

1. 首先,需要下载一个将EXE程序转换为服务的工具。有许多这样的工具可以使用,如`NSSM`(Non-Sucking Service Manager)或`srvany.exe`。在此教程中,我们将使用`NSSM`。

2. 前往NSSM的官网(https://nssm.cc/)下载相应版本的工具包,提取压缩文件后在文件夹中找到`nssm.exe`。

3. 按`Win + X`组合键,选择“命令提示符(管理员)”,或者在开始菜单中输入`cmd`,右键选择“以管理员身份运行”。

4. 进入包含`nssm.exe`的文件夹,然后执行以下命令安装并创建一个新的Windows服务:

```

nssm.exe install MyServiceName

```

其中MyServiceName为自定义服务名。

5. 在弹出的“NSSM服务安装器”窗口中,在“应用程序”字段中指定要作为服务运行的EXE程序的路径。

6. 在“启动目录”字段中,指定程序运行时的工作文件夹。通常情况下,可以将工作文件夹设置为跟EXE程序相同的文件夹。

7. 如果程序需要使用命令行参数进行运行,可以在“参数”字段中输入相应参数。

8. 切换到“详细信息”选项卡,可以设置服务的显示名称、描述等信息。

9. 切换到“登录”选项卡,可以选择以哪个用户身份运行服务。根据需要选择合适的登录类型。

10. 点击“安装服务”按钮后,新创建的服务就会在Windows服务列表中显示。

11. 最后,按`Win + R`组合键,输入`services.msc`,按回车键打开服务管理器。找到你新创建的服务,右键选择“启动”以运行服务。

**注意**

如果想卸载创建的服务,请先确保服务已经停止运行,然后使用如下命令:

```

nssm.exe remove MyServiceName confirm

```

其中,MyServiceName为之前创建的自定义服务名。

这样,你就成功地将一个EXE程序作为Windows服务运行了。现在你可以实现程序持续稳定运行,并在需要时对其进行配置管理。