Windows下将nginx等可执行文件添加为服务
作者:mmseoamin日期:2023-12-19

Windows下将nginx等可执行文件添加为服务

  • 为什么将可执行文件添加为服务?
  • 将可执行文件添加为服务的步骤
    • 步骤 1:下载和安装 Nginx
    • 步骤 2:添加为服务
      • 方法一:使用 Windows 自带的 sc 命令
      • 方法二:使用 NSSM(Non-Sucking Service Manager)
      • 方法三 :使用 WinSW
      • 步骤 3:启动和管理服务
      • 其他:删除服务

        Windows下将nginx等可执行文件添加为服务,在这里插入图片描述,第1张

        为什么将可执行文件添加为服务?

        可执行文件添加为服务有以下几个优势:

        1. 自动启动: 可以在系统启动时自动启动这些服务,无需手动干预。
        2. 稳定性: 以服务方式运行的应用程序通常会更稳定,因为它们在独立的进程中运行,不受用户登录状态的影响。
        3. 后台运行: 服务以后台方式运行,不会占用用户界面的空间,适合服务器环境。
        4. 远程管理: 可以通过服务管理工具轻松管理和监控这些服务。

        将可执行文件添加为服务的步骤

        这里我们使用Nginx作为一个例子,其他的可执行文件都是同理。

        步骤 1:下载和安装 Nginx

        前往 Nginx 官方网站下载 Windows 版本的 Nginx 可执行文件。

        解压下载的文件到一个目录,例如 C:\nginx\。

        步骤 2:添加为服务

        方法一:使用 Windows 自带的 sc 命令

        1. 打开命令提示符(以管理员权限运行)。

        2. 使用以下命令将 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 表示在系统启动时自动启动服务。

        1. 以下是 sc 命令的详细参数配置说明:
          sc create [ServiceName] binPath= "[ExecutablePath] [Options]" DisplayName= "[DisplayName]" start= [StartType]
          
          • ServiceName: 指定服务的名称,这是您在后续管理服务时需要使用的标识符。
          • binPath: 指定可执行文件的完整路径,包括执行文件本身和可能的命令行参数。
          • Options: 如果您的可执行文件需要附加命令行参数以正确运行,可以在这里指定。
          • DisplayName: 指定服务的显示名称,这是在服务管理器中显示的名称。
          • StartType: 指定服务的启动类型,有以下选项:
            • auto: 在系统启动时自动启动服务。
            • demand: 仅在手动请求时启动服务(默认值)。
            • disabled: 禁用服务,不会自动启动。

        方法二:使用 NSSM(Non-Sucking Service Manager)

        1. 下载 NSSM: 前往 NSSM 官方网站(https://nssm.cc/)下载最新版本的 NSSM 工具。

        2. 安装 NSSM: 将下载的 NSSM 压缩包解压到一个文件夹中。

        3. 添加服务:

          • 打开命令提示符(以管理员权限运行)。
          • 导航到 NSSM 所在的目录。
          • 运行以下命令来添加可执行文件为服务,例如将 Nginx 添加为服务:
            nssm install Nginx
            
          • 在弹出的窗口中配置服务信息:
            • Path: 可执行文件的完整路径(例如:C:\nginx\nginx.exe)。
            • Startup directory: 可执行文件所在的目录。
            • Arguments: 需要传递给可执行文件的参数,例如 -g “daemon off;”。
            • Service name: 服务的名称(例如:Nginx)。
            • 点击 “Install Service” 按钮。
            • 启动和管理服务:

              • 打开服务管理器(services.msc)。
              • 在列表中找到刚刚添加的服务,右键单击进行操作。

        方法三 :使用 WinSW

        1. 下载 WinSW: 前往 WinSW 的 GitHub 仓库(https://github.com/winsw/winsw)下载最新版本的 WinSW。

        2. 配置 WinSW XML 文件:

          • 解压下载的 WinSW 压缩包,找到 winsw.xml 文件。
          • 用文本编辑器打开 winsw.xml 文件。
          • 修改 元素为服务的 ID, 元素为服务的名称, 元素为服务的描述。
          • 在 元素中指定可执行文件的路径。
          • 如果需要,可以配置更多选项,例如 、 等。
           
               
             ddz_serverId  
               
             ddzService  
               
             服务描述。。。。  
               
             java   
               
             -jar ddz_server.jar  
               
             Automatic  
               
             %BASE%\logs  
               
             rotate  
         
        
        1. 安装服务:

          • 打开命令提示符(以管理员权限运行)。
          • 导航到 WinSW 所在目录。
          • 运行以下命令以安装服务:
            winsw install
            
          • 启动和管理服务:

            • 使用以下命令启动、停止或重启服务:

              winsw start
              winsw stop
              winsw restart
              
            • 或者在服务管理器中找到刚刚添加的服务,右键单击进行操作。

        步骤 3:启动和管理服务

        1. 打开服务管理器(按下 Win + R 键,输入 services.msc,然后按 Enter)。
        2. 在服务列表中,找到刚刚创建的 Nginx 服务。
        3. 右键单击服务,选择启动、停止、重启等操作。

        其他:删除服务

        1. 删除 NSSM 添加的服务:

          导航到 NSSM 所在的目录;运行以下命令以删除服务,其中 “ServiceName” 是您要删除的服务名称:

        nssm remove ServiceName
        
        1. 删除 WinSW 添加的服务:

          导航到 WinSW 所在的目录;运行以下命令以删除服务:

        winsw uninstall
        
        1. 删除使用 sc 命令添加的服务:

          运行以下命令以删除服务,其中 “ServiceName” 是您要删除的服务名称:

        sc delete ServiceName