はじめに
Windows上でNode-RED稼働は、Windowsログイン後にコマンドプロンプトからNode-RED起動が原則必要です。
しかしWindows Update等により意図せず再起動することがあり、気が付くとNode-REDが起動していないことがあります。また、企業管理下PCでは再起動をコントロールできないことがあります。
この記事ではNSSM(Non-Sucking Service Manager)を用いてNode-REDをWindowsサービス化することで、Windows起動後にログインしなくともNode-REDが使える環境を作ります。
環境
- Windows 11 (23H2 Build: 22631.4037)
- インターネット接続あり
- npmを用いてNode-REDを導入していること
- C:\temp フォルダが作成されていること
主な手順
- NSSMをダウンロード後、任意の場所に配置する
- NSSMの設定を行う
- Windowsサービス登録されたことを確認する
1. NSSMをダウンロード後、任意の場所に配置する
ダウンロード先 | NSSM - the Non-Sucking Service Manager
NSSMをダウンロードします。
ダウンロードしたファイルを任意の場所に配置します
2. NSSMの設定を行う
コマンドプロンプトからNSSMの設定を行います。例ではC:\Program Filesにファイルを配置しています。
NSSMの設定を行います
- NSSM(正確にはnssm.exe)を配置した場所へ移動します
- NSSMで使用するサービス名とNode-RED実行ファイルを設定します
※NSSMが日本語を考慮していない可能性があるため半角英数字で記載することを推奨します - 作成したサービスに対しディレクトリ(AppDirectory)を設定します
- 作成したサービスに対しパラメーター(AppParameters)を設定しC:\tempへログ出力します
※C:\tempフォルダが無い場合は事前に作成してください - 作成したサービスに対しサービスの説明(Description)を設定します。
※NSSMが日本語を考慮していない可能性があるため半角英数字で記載することを推奨します
1.
cd C:\Program Files\nssm-2.24-101-g897c7ad\win64
2.
nssm install 任意の名前 "C:\Users\\"%USERNAME%"\AppData\Roaming\npm\node-red.cmd"
3.
nssm set 任意の名前 AppDirectory "C:\Users\\"%USERNAME%"\.node-red"
4.
nssm set 任意の名前 AppParameters "-u C:\Users\\"%USERNAME%"\.node-red > C:\temp\node-red.log"
5.
nssm set 任意の名前 Description "サービスの説明"
3. Windowsサービス登録されたことを確認する
Windowsサービス管理画面を表示します
-
Windowsスタートボタンをクリックします
-
サービス と入力します
-
Windowsを再起動し、ログインする前にNode-REDが使用できることを確認します
以上で完了です。
参考
Running Node-RED as a service on Windows using NSSM
https://gist.github.com/dceejay/576b4847f0a17dc066db