unit設定ファイルが、node-redをあとからインストールしたため存在しなかった。そのため書く必要があった。
そのためのメモ書き。
この記事をベースに書き直した。Node-REDをsystemdでサービス化
これだとバージョンアップするたびに書き換えないといけないので、node-red
コマンドのRaspberryPi用コマンドnode-red-pi
を使い、起動するようにした。
ユーザー名は適宜読み替えてください。ハードにアクセスするコードを書かなければ、ユーザにrootを指定する必要はありません。セキュリティ上危ないと思います。
node-red.service
[Unit]
After=syslog.target network.target
Documentation=http://nodered.org/
[Service]
Environment="NODE_OPTIONS=--max-old-space-size=128"
Environment="NODE_RED_OPTIONS=--max-old-space-size=128 --userDir /home/<username>/.node-red/"
ExecStart = /usr/bin/node-red-pi $NODE_RED_OPTIONS
WorkingDirectory=/home/<username>/.node-red/
User=<username>
Nice=10
SyslogIdentifier=Node-RED
StandardOutput=syslog
Restart=on-failure
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
オプションについては、こちらを参考にしてください。Node-RED User Group Japan|設定
余談
node-red-start
コマンドだとsudoで起動する必要があり、visudoでパスなしsudoを許可する必要があったり、なぜか--settingsオプションが無視されたりした。そこで悪戦苦闘していた。
node-red
もしくはnode-red-pi
ならsudoなしで起動できるので、それを用いてサービス化している。
これで、準備ができると例えばこんな事ができます