そんな用途がある人は相当少ないとは思うのですが、仕事柄、ニッチな要求ばかりがやってきます。
さて、node.js用に書かれたプログラムを、Windowsでサービス登録してバックグラウンドで自動実行する方法です。
WinSer: node.js applications as windows services
npmコマンドでインストールできます。
npm install winser
実際のプログラムをサービス化するにあたって、package.jsonを作成しておく必要があります。package.jsonのnameがそのままサービス名として登録されます。他の項目はどうでもいいです。
コマンドプロンプトを管理者権限で実行します。
C:\> chcp 437
日本語環境の場合、chcpコマンドでコマンドプロンプトを英語モードにしないと、
You must run this tool as an administrator
というエラーが出ます。
そして、自分の作ったプログラムのディレクトリに移動して、
C:\path\to\node_modules\.bat\winser.cmd -i
でサービスに登録されます。
cmdファイル経由ではなく、
node.exe C:\path\to\winser\winser -i
でもOKです。
ちなみに、サービス自体はnssmが登録します。
NSSM – the Non-Sucking Service Manager
ファイアウォールを通す場合は、nssmを指定します。