LoginSignup
2
2

More than 3 years have passed since last update.

nvmでインストールしたNode-REDをdaemon起動する方法

Last updated at Posted at 2019-07-09

nvmでNode.jsのバージョンを管理しつつ、Node-REDをインストールして、daemon起動する方法のメモです。

nvmのインストールはnvmの公式サイトを参照してください。
ここでインストールしたNode.jsのバージョンでNode-REDを動かして、さらにdaemon起動できる状態にしていきます。

Node-REDのインストール

インストールはこれだけ

npm install -g node-red

Node-REDの起動方法

Raspberry Piの場合:

node-red

daemon起動をする

通常のnodered.serviceを読み込ませると、「npmコマンドが見つかりません」というメッセージが表示され、「パレットの管理」のメニューが表示されません。

Jul  9 17:40:25 raspberrypi Node-RED[6405]: 9 Jul 17:40:25 - [info] パレットエディタを無効化 : npmコマンドが見つかりません

rootにもnvmをインストールすれば解決するのですがスマートではないので、systemctlが参照するPATHに、npmがインストールされているPATHを追加します。

以下のようなコマンドでPATHを出力して、PATHの指定をするファイルを作成します。

echo $PATH

作成したファイルがこちら
(gamesはいらないだろ...)

/home/pi/pi.conf
PATH=/home/pi/.config/versions/node/v10.16.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

作成したPATHの設定ファイルを、nodered.serviceのEnvironmentFileのパラメータで指定します。

/etc/systemd/system/nodered.service
[Unit]
After=network.target
Documentation=http://nodered.org/

[Service]
Environment="NODE_OPTIONS=--max-old-space-size=128"
#Environment="NODE_RED_OPTIONS=-v"
EnvironmentFile=/home/pi/pi.conf
ExecStart=/home/pi/.config/versions/node/v10.16.0/bin/node $NODE_OPTIONS /home/pi/node_modules/node-red/red.js $NODE_RED_OPTIONS
WorkingDirectory=/home/pi/.node-red/
User=pi
Group=pi
Nice=10
SyslogIdentifier=Node-RED
StandardOutput=syslog
Restart=on-failure
KillSignal=SIGINT

[Install]
WantedBy=network.target

sudo systemctl start noderedでdaemon起動すれば、npmのPATHも設定されているので、正常に動作します。

2020.5.20:
2020-02-13-rasbian-busterのカーネルではnetwork-online.targetの設定だと電源起動時に自動起動しないためnetwork.targetに変更しました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2