Node-RED 开机启动

开机时启动、停止和监控应用程序有许多方法。本指南重点介绍了一些可能的方法。

树莓派、Debian、Ubuntu

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

此脚本将 Node-RED 安装为 systemd 服务。更多信息请阅读在树莓派上运行指南。

如果您不是使用树莓派操作系统,您可能需要编辑服务文件以适应您的本地用户 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 上以非 root 用户身份运行时需要 sudo。如果在 Windows 上运行,您需要以管理员身份在命令 shell 中运行,无需 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 命令来确认位置。

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

3. 告诉 PM2 运行 Node-RED

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

-- 参数必须出现在您想要传递给 Node-RED 的任何参数之前。

pm2 start /usr/bin/node-red -- -v
注意:如果您在内存受限的设备(如树莓派或 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
临时说明:PM2 在 GitHub 上有一个未解决的问题,该问题突出显示了最近引入的一个问题。Linux 用户需要手动编辑生成的 `/etc/init.d/pm2-init.sh` 文件并替换
export PM2_HOME="/root/.pm2"
指向正确的目录,例如
export PM2_HOME="/home/{youruser}/.pm2"

5. 重启

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

Windows

PM2 在 Windows 上不会作为服务自动运行。另一种选择是使用 NSSM,其示例可从下面的社区链接获取。

其他选项

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