Linux系と違ってシステムユーザーじゃないとWindowsでNode.jsアプリをデプロイして、ログオフしたらアプリもダウンされてしまいます。
システムユーザー権限でCmd
を使用できますが、やり方が複雑すぎてめんどくさい
多分、一番簡単な方法はシステムサービスを使うことだと思います。
システムサービスにアプリサービスを登録できたらシステムユーザーがコントロールしてくれます。つまり、通常のユーザーがログオフしてもアプリが立ち上げっぱなしできます。
このノートでNSSMを使用してNode.jsアプリをサービスとしてシステムサービスを登録し、
作業する.bat
ファイルを投稿します。
1. システムサービスにアプリサービスを登録し開始する。
@echo off
echo サービスをアンインストール...
nssm stop <SERVICE_NAME>
nssm remove <SERVICE_NAME>
echo サービスをインストール...
nssm install <SERVICE_NAME> "node"
echo 引数を設定...
nssm set <SERVICE_NAME> AppDirectory "path\to\app"
nssm set <SERVICE_NAME> AppParameters "index.js"
nssm set <SERVICE_NAME> AppEnvironmentExtra "NODE_ENV=production"
nssm set <SERVICE_NAME> AppStdout "path\to\logs\nssm_out.log"
nssm set <SERVICE_NAME> AppStderr "path\to\logs\nssm_err.log"
echo サービスを開始...
nssm start <SERVICE_NAME>
timeout 10
2. サービスを停止し、システムサービスから削除する。
@echo off
echo サービスをアンインストール...
nssm stop <SERVICE_NAME>
nssm remove <SERVICE_NAME>
timeout 10
NSSMのコマンドラインの詳しくはHPにご参考ください。