我需要在我创建的 netns 中运行 node-red 。我在这个命名空间中有一个专用的调制解调器接口,只有 node-red 才能访问。
我正在使用 Ubuntu 16.04 并安装 npm -> 然后为 node.js 安装 nvm 版本管理器以安装 8.11.3,然后安装 node-red 本身。
我只安装了 nvm 版本 8.11.3 并将其设置为默认值。我希望这是唯一在任何地方运行的版本。
当我从常规 shell 启动 node-red 时,它会以 node.js 版本 8.11.3 启动
当我在 netns 中启动 node-red 时,它也会使用 node.js 版本 8.11.3 启动 [我使用 -u /directory 选项运行与普通用户相同的流程]
问题: 当我从自动 shell 脚本启动 netns 中的 node-red 时,它会使用 node.js 版本 4.9.1 启动 [我使用 -u /directory 选项运行与普通用户相同的流程]
Welcome to Node-RED
===================
21 Jun 11:42:15 - [info] Node-RED version: v0.18.7
21 Jun 11:42:15 - [info] **Node.js version: v4.2.6**
21 Jun 11:42:15 - [info] Linux 4.13.0-45-generic x64 LE
脚本中的启动行是:
ip netns exec sensor node-red -u /home/iotdemo/.node-red
“sensor”是 netns 名称,-u 选项指向与普通用户相同的流目录。
为什么它会以我什至没有安装的 node.js 版本启动,以及如何让它以所需的 v8.11.3 启动?
我怀疑它与 root 与用户(iotdemo)有关,但它似乎在命名空间中启动一个进程,您必须以 root 身份执行。
感谢您考虑这个问题。