Node-REDをsystemdでサービス化


Node-REDをsystemdでサービス化

Node-REDユーザ会に掲載されているリンクにあるsystemdで登録するやつでは動きませんでしたので、
動くやつにしました。

以下の環境で実行しました。

  • CentOS 7
  • NVMでnode.jsをバージョン管理
  • node.jsのバージョンはv8.10.0
  • 何も考えずroot

systemdに登録するファイルを作成

$ vi /etc/systemd/system/node-red.service

ファイルの中身。
インストールしたnode.jsのバージョンが違う人は書き換えてください。

[Unit]
After=syslog.target network.target
Documentation=http://nodered.org/

[Service]
Environment="NODE_OPTIONS=--max-old-space-size=128"
Environment="NODE_RED_OPTIONS=-v"
ExecStart=/root/.nvm/versions/node/v8.10.0/bin/node $NODE_OPTIONS /root/.nvm/versions/node/v8.10.0/lib/node_modules/node-red/red.js $NODE_RED_OPTIONS
WorkingDirectory=/root/.node-red/
User=root
Group=root
Nice=10
SyslogIdentifier=Node-RED
StandardOutput=syslog
Restart=on-failure
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target

再読込みさせて終わり。

$ systemctl daemon-reload
$ systemctl start node-red
$ systemctl status node-red -l
● node-red.service - Node-RED is a tool for wiring together hardware devices, APIs and online services in new and interesting ways.
   Loaded: loaded (/etc/systemd/system/node-red.service; disabled; vendor preset: disabled)
   Active: active (running) since 水 2018-03-14 16:44:46 JST; 11min ago
     Docs: http://nodered.org/
 Main PID: 3619 (node-red)
   CGroup: /system.slice/node-red.service
           mq3619 node-red                                                      

 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [warn] [node-red/rpi-gpio] Info : Ignoring Raspberry Pi specific node
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [warn] ------------------------------------------------------
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [info] Settings file  : /root/.node-red/settings.js
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [info] User directory : /root/.node-red
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [warn] Projects disabled : set editorTheme.projects.enabled=true to enable
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [info] Flows file     : /root/.node-red/flows_Node-RED.json
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [info] Creating new flow file
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [info] Starting flows
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [info] Started flows
 3月 14 16:44:47 Node-RED Node-RED[3619]: 14 Mar 16:44:47 - [info] Server now running at http://127.0.0.1:1880/