后台自动无干扰运行 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 remove
nssm 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 龙头企业|博世力士乐|德国宝马|京东|昆仑数据|怡养科技|绍兴安瑞思