Node-RED-L2-Node-RED在Linux系统启动时自动运行

Node-RED在Linux系统启动时自动运行

目的

linux重启时,自动启动Node-RED

步骤

1创建服务文件:

创建一个名为 node-red.service 的新文件,通常位于 /etc/systemd/system/ 目录中。

bash 复制代码
sudo nano /etc/systemd/system/node-red.service

在编辑器中,添加以下内容(请根据你的Node-RED安装路径和需求进行调整):

ini
[Unit]
Description=Node-RED
After=network.target

[Service]
User=<your-username>
ExecStart=/usr/bin/node-red
WorkingDirectory=<your-node-red-directory>
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

替换 为你的用户名,替换 为你的Node-RED用户目录(通常是 ~/.node-red)。

保存文件并退出编辑器,

2重新加载服务:

重新加载Systemd管理器配置,

bash 复制代码
sudo systemctl daemon-reload

3启用服务:

启用服务。

bash 复制代码
sudo systemctl enable node-red.service

4启动Node-RED服务:

启动Node-RED服务:

bash 复制代码
sudo systemctl start node-red.service

5检查服务状态:

检查服务状态:

检查Node-RED服务的状态以确保它正在运行:

bash 复制代码
sudo systemctl status node-red.service

使服务在启动时自动运行:

在执行 sudo systemctl enable node-red.service 命令时,服务已经被设置为在启动时自动运行。如果你想确认服务是否已设置为自启动,可以使用以下命令:

bash 复制代码
sudo systemctl is-enabled node-red.service

6其他说明

如果Node-RED没有作为服务运行,而是作为系统范围内的npm包安装的,你可能需要在 ExecStart 中使用 npm 来启动Node-RED:

ini
ExecStart=/usr/bin/npm start -g -- node-red

请注意,如果你使用的是Snap包安装的Node-RED,你不需要创建服务文件,因为Snap包会自动处理Node-RED的自启动。你可以通过以下命令来启用和启动Node-RED Snap服务:

bash 复制代码
sudo snap enable node-red

确保你有足够的权限来执行这些操作,如果没有,你可能需要使用 sudo。此外,根据你的系统配置和Node-RED的安装方式,这些步骤可能需要一些调整。

7如果没启动

如果问题出在启动服务的命令上,那么你需要确保在 node-red.service 文件中的 ExecStart 行指向正确的Node-RED启动命令。以下是一些可能需要更正的地方:

正确的Node-RED执行路径:

确保 ExecStart 中的路径指向了正确的Node-RED可执行文件。如果你通过npm全局安装了Node-RED,它可能位于 /usr/bin/node-red 或者 /usr/local/bin/node-red。

确保使用绝对路径:

在 ExecStart 中使用绝对路径,避免使用相对路径或环境变量,这样可以减少路径错误的可能性。

检查用户权限:

确保服务文件中的 User 和 Group 字段设置正确,且该用户有权限执行Node-RED。

检查环境变量:

如果Node-RED依赖于特定的环境变量,确保在服务文件中设置这些环境变量。

检查服务类型:

如果你的服务在启动后立即退出,你可能需要在服务文件中将 Type 设置为 forking 或 simple,并根据需要设置 PIDFile。

ini

Type=forking

PIDFile=/var/run/node-red.pid

设置成功的退出状态:

如果服务在完成启动后退出,并且你希望systemd认为这是成功的,可以设置 SuccessExitStatus。

ini

SuccessExitStatus=143

设置RemainAfterExit:

如果你希望服务在子进程退出后仍然保持活跃状态,可以设置 RemainAfterExit。

ini

RemainAfterExit=yes

一旦你更正了服务文件,记得重新加载Systemd并尝试重新启动服务:然后再次检查服务状态:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart node-red.service
sudo systemctl status node-red.service

确保所有的路径和命令都是正确的,并且符合你的系统环境和Node-RED的安装方式。如果你不确定,可以尝试在命令行中直接运行这些命令,看看是否有错误输出。

相关推荐
软件技术员5 分钟前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
哎呦喂-ll17 分钟前
Linux进阶:环境变量
linux
耗同学一米八18 分钟前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
Rverdoser18 分钟前
Linux环境开启MongoDB的安全认证
linux·安全·mongodb
PigeonGuan29 分钟前
【jupyter】linux服务器怎么使用jupyter
linux·ide·jupyter
一条晒干的咸魚44 分钟前
【Web前端】创建我的第一个 Web 表单
服务器·前端·javascript·json·对象·表单
东华果汁哥1 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
咖喱鱼蛋1 小时前
Ubuntu安装Electron环境
linux·ubuntu·electron
ac.char1 小时前
在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager)
linux·ubuntu·npm