Windows下将nginx等可执行文件添加为服务
- 为什么将可执行文件添加为服务?
- 将可执行文件添加为服务的步骤
- 步骤 1:下载和安装 Nginx
- 步骤 2:添加为服务
- 方法一:使用 Windows 自带的 sc 命令
- 方法二:使用 NSSM(Non-Sucking Service Manager)
- 方法三 :使用 WinSW
- 步骤 3:启动和管理服务
- 其他:删除服务
为什么将可执行文件添加为服务?
将可执行文件添加为服务有以下几个优势:
- 自动启动: 可以在系统启动时自动启动这些服务,无需手动干预。
- 稳定性: 以服务方式运行的应用程序通常会更稳定,因为它们在独立的进程中运行,不受用户登录状态的影响。
- 后台运行: 服务以后台方式运行,不会占用用户界面的空间,适合服务器环境。
- 远程管理: 可以通过服务管理工具轻松管理和监控这些服务。
将可执行文件添加为服务的步骤
这里我们使用Nginx作为一个例子,其他的可执行文件都是同理。
步骤 1:下载和安装 Nginx
前往 Nginx 官方网站下载 Windows 版本的 Nginx 可执行文件。
解压下载的文件到一个目录,例如 C:\nginx\。
步骤 2:添加为服务
方法一:使用 Windows 自带的 sc 命令
-
打开命令提示符(以管理员权限运行)。
-
使用以下命令将 Nginx 添加为服务:
sc create Nginx binPath= "C:\nginx\nginx.exe -g \"daemon off;\"" DisplayName= "Nginx" start= auto
在此示例中,Nginx 是服务的名称,C:\nginx\nginx.exe -g “daemon off;” 是 Nginx 可执行文件的完整路径和启动参数,Nginx 是服务的显示名称,start= auto 表示在系统启动时自动启动服务。
- 以下是 sc 命令的详细参数配置说明:
sc create [ServiceName] binPath= "[ExecutablePath] [Options]" DisplayName= "[DisplayName]" start= [StartType]
ServiceName
: 指定服务的名称,这是您在后续管理服务时需要使用的标识符。binPath
: 指定可执行文件的完整路径,包括执行文件本身和可能的命令行参数。Options
: 如果您的可执行文件需要附加命令行参数以正确运行,可以在这里指定。DisplayName
: 指定服务的显示名称,这是在服务管理器中显示的名称。StartType
: 指定服务的启动类型,有以下选项:- auto: 在系统启动时自动启动服务。
- demand: 仅在手动请求时启动服务(默认值)。
- disabled: 禁用服务,不会自动启动。
方法二:使用 NSSM(Non-Sucking Service Manager)
-
下载 NSSM: 前往 NSSM 官方网站(https://nssm.cc/)下载最新版本的 NSSM 工具。
-
安装 NSSM: 将下载的 NSSM 压缩包解压到一个文件夹中。
-
添加服务:
- 打开命令提示符(以管理员权限运行)。
- 导航到 NSSM 所在的目录。
- 运行以下命令来添加可执行文件为服务,例如将 Nginx 添加为服务:
nssm install Nginx
- 在弹出的窗口中配置服务信息:
- Path: 可执行文件的完整路径(例如:C:\nginx\nginx.exe)。
- Startup directory: 可执行文件所在的目录。
- Arguments: 需要传递给可执行文件的参数,例如 -g “daemon off;”。
- Service name: 服务的名称(例如:Nginx)。
- 点击 “Install Service” 按钮。
-
启动和管理服务:
- 打开服务管理器(services.msc)。
- 在列表中找到刚刚添加的服务,右键单击进行操作。
方法三 :使用 WinSW
-
下载 WinSW: 前往 WinSW 的 GitHub 仓库(https://github.com/winsw/winsw)下载最新版本的 WinSW。
-
配置 WinSW XML 文件:
- 解压下载的 WinSW 压缩包,找到 winsw.xml 文件。
- 用文本编辑器打开 winsw.xml 文件。
- 修改 元素为服务的 ID, 元素为服务的名称, 元素为服务的描述。
- 在 元素中指定可执行文件的路径。
- 如果需要,可以配置更多选项,例如 、 等。
-
安装服务:
- 打开命令提示符(以管理员权限运行)。
- 导航到 WinSW 所在目录。
- 运行以下命令以安装服务:
winsw install
-
启动和管理服务:
-
使用以下命令启动、停止或重启服务:
winsw start winsw stop winsw restart
-
或者在服务管理器中找到刚刚添加的服务,右键单击进行操作。
-
步骤 3:启动和管理服务
- 打开服务管理器(按下 Win + R 键,输入 services.msc,然后按 Enter)。
- 在服务列表中,找到刚刚创建的 Nginx 服务。
- 右键单击服务,选择启动、停止、重启等操作。
其他:删除服务
- 删除 NSSM 添加的服务:
导航到 NSSM 所在的目录;运行以下命令以删除服务,其中 “ServiceName” 是您要删除的服务名称:
nssm remove ServiceName
- 删除 WinSW 添加的服务:
导航到 WinSW 所在的目录;运行以下命令以删除服务:
winsw uninstall
- 删除使用 sc 命令添加的服务:
运行以下命令以删除服务,其中 “ServiceName” 是您要删除的服务名称:
sc delete ServiceName