写点什么

实现高效运行管理:如何使用 NSSM 工具将 IoTDB 注册为 Windows 系统服务

作者:Apache IoTDB
  • 2024-11-15
    北京
  • 本文字数:2015 字

    阅读完需:约 7 分钟

实现高效运行管理:如何使用 NSSM 工具将 IoTDB 注册为 Windows 系统服务

IoTDB 是一个专为工业物联网领域设计的高性能时间序列数据库。在生产环境中,确保 IoTDB 的稳定运行对于业务连续性至关重要。通常情况下,通过批处理(bat)脚本运行 IoTDB 会始终在前台显示命令行窗口,这不利于服务的统一管理和自动化运行。


本文将介绍如何利用 NSSM(Non-Sucking Service Manager)工具,将 IoTDB 注册为 Windows 系统服务,实现在后台无干扰的高效运行和统一的服务管理,从而提升系统稳定性和维护效率。


01 什么是 NSSM 工具


NSSM(Non-Sucking Service Manager)是一个开源的 Windows 服务管理工具,用于在 Windows 系统上运行任何可执行程序作为服务。它的主要特点包括:


1. 简单易用:NSSM 提供了一个简单的命令行界面,可以轻松地将应用程序安装为 Windows 服务。


2. Non-Sucking:NSSM 的设计理念是避免传统服务管理器中常见的“Sucking”问题,确保服务在崩溃后能够自动重启。


3. 日志记录:NSSM 可以将服务的标准输出和错误输出重定向到日志文件,方便用户进行调试和监控。


4. 支持多种应用:它能够支持任何类型的可执行文件,适用于各种应用场景。


NSSM 是一个非常实用的工具,尤其适合需要在后台持续运行的应用程序,如 web 服务器、数据库服务等。


02 如何使用 NSSM 工具将 IoTDB 注册为 Windows 系统服务


(1)前置条件


  • Windows 操作系统,且能运行 NSSM(Windows 2000 or later. Specifically, Windows 7, Windows 8 , Windows 10 and newer)。


  • 下载 NSSM,配置 NSSM 的程序包目录至环境变量(推荐配置,否则需要进入对应目录执行命令):


  • 官网下载链接:https://nssm.cc/download



  • 已安装好对应的 JDK 并设置好环境变量(JAVA_HOME)。


  • 已经成功启动过 ConfigNode 和 DataNode,并且注册服务前退出它们。


  • 提前启动,确保无其他问题导致服务无法启动,避免增加排查难度。


  • 注册好服务后会用 NSSM 来启动,会出现冲突,因此建议注册前退出 ConfigNode 和 DataNode。


(2)注册 IoTDB-ConfigNode 服务


首先进入 NSSM 的目录,如果已经配置环境变量,则不需要进入。


1. 打开命令提示符(管理员),如果未配置环境变量,需要在 NSSM 的目录打开:



2. 运行命令,进入安装界面:


nssm install IoTDB-ConfigNode# 如果为配置环境变量则运行时可能需要加..\nssm install IoTDB-ConfigNode
复制代码



3. Path 选择 IoTDB 根目录 \sbin\start-confignode.bat,Startup directory 选择为 IoTDB 根目录:



4. 如果需要排查对应的输出内容,可以设置 I/O 页签下的 Output,将其设置为一个文件,对应的输出内容会输出到指定文件中:



5. 设置好后点击 Install service,提示成功后服务即注册成功:



在服务中也可以看到刚才注册的服务:



6. 运行 nssm start IoTDB-ConfigNode 即可启动服务,或在服务中右键点击运行:




(3)注册 IoTDB-DataNode 服务


首先进入 NSSM 的目录,如果已经配置环境变量,则不需要进入。


1. 打开命令提示符(管理员),如果未配置环境变量,需要在 NSSM 的目录打开:



2. 运行命令,进入安装界面:


nssm install IoTDB-DataNode# 如果为配置环境变量则运行时可能需要加..\nssm install IoTDB-DataNode
复制代码



3. Path 选择 IoTDB 根目录 \sbin\start-datanode.bat,Startup directory 选择为 IoTDB 根目录:



4. 如果需要排查对应的输出内容,可以设置 I/O 页签下的 Output,将其设置为一个文件,对应的输出内容会输出到指定文件中:



5. 设置好后点击 Install service,提示成功后服务即注册成功:



在服务中也可以看到刚才注册的服务:



6. 运行 nssm start IoTDB-DataNode 即可启动服务,或在服务中右键点击运行:




(4)注意事项


  • 注册好服务后不能移动或删除 nssm.exe,如果需要更改路径,需先删除相关服务后重新注册。


  • nssm remove,运行此命令会弹窗提示确认删除。


  • nssm removeconfirm,运行此命令将会直接删除服务。


  • nssm 可以正确处理带有空格的路径。如果应用程序的路径包含空格,则需要将其用引号括起来,否则命令提示符会将路径解释为两个参数。


nssm install <servicename> "C:\Program Files\app.exe"
复制代码


如果您希望提供的选项之一包含空格,则需要也引用它并引用引号本身。


nssm install <servicename> <application> """This is one argument"""
复制代码


03 参考:NSSM 命令介绍


安装服务


nssm install <servicename>nssm install <servicename> <program>nssm install <servicename> <program> [<arguments>]
复制代码


删除服务


nssm removenssm remove <servicename>nssm remove <servicename> confirm
复制代码


启动服务


nssm start <servicename>
复制代码


停止服务


nssm stop <servicename>
复制代码


重启服务


nssm restart <servicename>
复制代码


查询状态


nssm status <servicename>
复制代码


设置参数

nssm set <servicename> <parameter> <value>nssm set <servicename> <parameter> <subparameter> <value>
复制代码


查询参数


nssm get <servicename> <parameter>nssm get <servicename> <parameter> <subparameter>
复制代码


重置参数


nssm reset <servicename> <parameter>nssm reset <servicename> <parameter> <subparameter>
复制代码


用户头像

Apache IoTDB

关注

还未添加个人签名 2021-12-30 加入

海量时序数据管理的解决方案,一款高吞吐、高压缩、高可用、物联网原生的开源时序数据库。

评论

发布
暂无评论
实现高效运行管理:如何使用 NSSM 工具将 IoTDB 注册为 Windows 系统服务_Apache IoTDB_InfoQ写作社区