• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
netcore_vue
博客园    首页    新随笔    联系   管理    订阅  订阅

将nginx做成windows服务

一,NSSM

首先介绍一个NSSM这个小工具,将exe做成系统服务,非常方便实用。

官网:https://nssm.cc/

直接下载:nssm-2-24

NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:

  1. 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
  2. 安装简单,修改方便
  3. 可以重定向输出(并且支持Rotation)
  4. 可以自动守护封装了的服务,程序挂掉了后可以自动重启
  5. 可以自定义环境变量

这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。

  • 开发的时候是一个普通程序,降低了开发难度,调试起来非常方便
  • 安装简单,并且可以随时修改服务属性,更新也更加方便
  • 可以利用控制台输出直接实现一个简单的日志系统
  • 不用考虑再加一个服务实现服务守护功能

我觉得它还可以需要增加的一个功能是将输入输出重定向为一个tcp连接,这样可以通过telnet的方式实现程序的交互了,那样就更加好用了。

下面就简单的介绍一下如何使用这个工具。

首先去nssm的官网下载

服务安装:

服务安装可以使用如下命令: nssm install <servicename>

执行此命令后,会出现一个界面,基本上看着就知道怎么用了,大多数情况下,只需要填第一个界面的程序路径就可以了。

其它界面的是高级参数的配置,可以根据需要自行选择。

参数填完后执行"install service"按钮即可将服务安装到系统,可以使用系统的服务管理工具查看了。

当然,如果要自动化安装,可以直接带上程序路径: nssm install <servicename> <program> [<arguments>]

NSSM本身win7及以上的系统基本都是支持的,我测试过win7,2008,2016系统,都是没有问题的,如果安装失败,请首先检查是否装了某国产管家或国产杀毒软件。

安装完成后,服务还没有启动,需要通过下面的服务管理的命令启动服务。

 

服务管理:

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

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

当然,也可以使用系统自带的服务管理器操作和使用系统的命令。

 

修改参数:

NSSM安装的服务修改起来非常方便,命令如下:

nssm edit <servicename>

会自动启动操作界面,直接更改即可。

 

服务删除:

服务删除可以使用如下命令之一:

  • nssm remove <servicename>
  • nssm remove <servicename> confirm

功能没有大的区别,后面的命令是自动确认的,没有交互界面。

二,将nginx做成windows系统服务

我们很容易会产生这样的一个需求,如果在 Windows 上面有一个程序或者一段脚本,我们需要将其设置为一个可以自启动,断掉会重连的服务。

例如 Nginx 在 windows 上面并没有安装服务,那么我们如何将其作为服务运行呢?

例如 windows 下面的 nginx,我们安装好之后,执行 nginx.exe 这个文件,然后通过 nginx -s ???? 来启停这个服务。

但是这样明显不好,至少挂掉之后就不会再起来了,而且怎么自启动还是个问题。

那么我们很自然会想到将其搞成一个服务。

创建服务

nssm install <Service Name>

然后就会弹出一个交互的对话框用于输入服务的信息。

举个栗子

然后点 Install service,服务就安装成功了。

搞我们的 Nginx

同样,执行安装语句:

nssm install Nginx

第一个 Tab 里面我们输入一下我们需要执行的命令,在这里我们输入 C:\nginx\nginx.exe,其他两项都为空。

另外,我们希望这个服务用 Administrator 来执行,我们选择 Log on 这个 Tab

在这里填入 Administrator 的用户名密码,就可以完成了。

然后点击 Install service,去服务管理那里启动,大功告成,So easy。

当然还有很多配置,需要学习的请直接看官网介绍:https://nssm.cc/usage

修改服务

如果创建的时候填错了怎么办?简单:

nssm edit Nginx

删除服务

要卸载服务也简单,可以用系统自带的 sc 命令:

sc delete Nginx

也可以用我们的 NSSM:

nssm remove Nginx

 运行效果图

 

posted @ 2021-06-04 09:58  梦想代码-0431  阅读(818)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3