WinSerでnode.jsをWindowsのサービスにする

そんな用途がある人は相当少ないとは思うのですが、仕事柄、ニッチな要求ばかりがやってきます。

さて、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を指定します。


タグ: , , ,

新しく会社作りました!

コメントをどうぞ