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

文摘   2024-11-15 17:20   新加坡  

后台自动无干扰运行 IoTDB 的“指导手册”!


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>




规上企业应用实例






能源电力:中核武汉国网信通产业集团华润电力大唐先一上海电气国轩清安储能某储能厂商太极股份


航天航空:中航机载共性北邮一号卫星


钢铁冶炼:宝武钢铁中冶赛迪


交通运输:中车四方长安汽车城建智控德国铁路


智慧工厂与物联:PCB 龙头企业博世力士乐德国宝马京东昆仑数据怡养科技绍兴安瑞思



Apache IoTDB
一款高吞吐、高压缩、高可用、支持存储、管理与分析的物联网原生开源时序数据库系统软件。
 最新文章