开机时启动 Node-RED

在启动时有多种启动、停止和监控应用程序的方法。本指南突出了一些可能的方法。

Raspberry Pi, Debian, Ubuntu

我们提供的Raspberry Pi 安装脚本可以在任何类似 Debian 的操作系统上使用。

该脚本将 Node-RED 安装为一个systemd 服务。有关更多信息,请查看在 Raspberry Pi 上运行指南。

如果您没有使用 Raspberry Pi OS,您可能需要编辑服务文件,以适应您的本地用户 ID 和环境。如何做的详细信息可在这里找到。

基于 RPM 的 Linux, RedHat, Fedora, CentOS

我们还提供了适用于基于 RPM 的 Linux 的安装脚本可在此处获取,它同样设置了 systemd。

其他 Linux, OSX

下面的指南列出了我们认为对大多数用户来说最简单的方式。在 Windows 上,PM2 并不会作为服务自动运行——您可能更喜欢下面的NSSM 选项

使用 PM2

PM2是一个 Node.js 的进程管理器。它简化了在启动时运行应用程序并确保必要时重新启动的过程。

1. 安装 PM2

sudo npm install -g pm2
注意 : 如果以非管理员用户身份在 Linux 或 OS X 上运行,必须使用 sudo。如果在 Windows 上运行,您需要以管理员身份打开命令提示符,而不使用 sudo 命令。
如果在 Windows 上运行,您还应确保 tail.exe 在您的路径中,如这里所述。

2. 确定 node-red 命令的确切位置。

如果您进行了全局安装 node-red,则在 Linux/OS X 上,node-red 命令可能是:/usr/bin/node-red/usr/local/bin/node-red。可以使用命令 which node-red 确认位置。

如果您进行了本地安装,则相对于您运行 npm install 的位置,它将是 node_modules/node-red/bin/node-red

3. 告诉 PM2 运行 Node-RED

以下命令告诉 PM2 运行 Node-RED,假设 /usr/bin/node-rednode-red 命令的位置。

-- 参数必须出现在您希望传递给 node-red 的任何参数之前。

pm2 start /usr/bin/node-red -- -v
注意 : 如果您在像 Raspberry Pi 或 BeagleBone Black 这样的内存受限的设备上运行,您必须传递一个额外的参数:
pm2 start /usr/bin/node-red --node-args="--max-old-space-size=128" -- -v
注意 : 如果您希望以 root 用户身份运行,您必须使用 `--userDir` 选项来指定 Node-RED 应该存储数据的位置。

这将使 Node-RED 在后台启动。您可以使用以下命令查看进程信息并访问日志输出:

pm2 info node-red
pm2 logs node-red

有关在 PM2 下管理进程的更多信息,请查看这里

4. 告诉 PM2 在启动时运行

PM2能够生成并配置适合其运行平台的启动脚本。

运行以下命令并按照提供的说明进行操作:

pm2 save
pm2 startup

对于使用 systemd 的较新 Linux 系统,请使用:

pm2 startup systemd
临时注意: 在 GitHub 上有一个公开问题,highlight了最近引入的一个问题。Linux 用户需要手动编辑生成的 `/etc/init.d/pm2-init.sh` 文件,并将
export PM2_HOME="/root/.pm2"
替换为指向正确目录的内容,应该类似于:
export PM2_HOME="/home/{youruser}/.pm2"

5. 重启

最后,重启并检查一切是否按预期启动。

Windows

PM2 并不在 Windows 上自动作为服务运行。另一种选择是使用 NSSM,社区链接下有示例。

备用选项

有许多替代方法。以下是一些由社区成员创建的选项。