node-red学习笔记——通过java远程调用linux shell初始化node-red并启动

本文介绍了一种通过Java远程调用Linux shell脚本来创建Node-RED的flows配置文件并启动服务的方法。在操作过程中,讨论了如何指定保存位置、阅读官方文档的重要性,以及使用nohup命令在后台运行服务。文章还提供了shell脚本和Java代码片段,以获取Node-RED服务的PID,便于后续服务管理和终止。
摘要由CSDN通过智能技术生成

大体思路:通过java远程调用linux shell,创建node-red的flows_xxx.json文件,然后启动node-red并指定json文件。

(在node-red操作界面添加的节点都会保存到相应json文件中,windows默认保存位置:C:\Users\LENOVO\.node-red,linux:~/.node-red。保存位置可以在启动服务的时候去指定

Usage: node-red [-v] [-?] [--settings settings.js] [--userDir DIR] [flows.json]

Options:
  -s, --settings FILE  use specified settings file
  -u, --userDir  DIR   use specified user directory
  -v                   enable verbose output
  -?, --help           show usage

建议看下官方文档 https://nodered.org/docs/getting-started/running,推荐使用谷歌浏览器直接右键翻译)

先放shell脚本:

#!/bin/bash
PRODUCT_ID=$1
FILE_NAME="flows_"$PRODUCT_ID".json"
PORT=$2
#create new flows_xxx.json
cd /usr/soft/node-red-flows
touch $FILE_NAME
# startup node-red server
nohup node-red -p $PORT $FILE_NAME > myout.file 2>&1 &
# return pid
printf $!"end"

需要传递两个参数,产品id和端口号(当初的想法是一个产品一个端口号,启动一个node-red。其他方案参考:多个产品只部署且公用一个node-red服务,点开不同产品去查询加载到ui界面上,但是还有一个问题,如果这样的话,没有点开的产品所在的node-red服务也必须是启动的,所以你得会去改源码,有兴趣的可以去研究下)

注:脚本最后返回node-red服务占用的PID号,为以后停止服务杀进程做准备

nohup 命令 > 打印输出文件 2&g

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值