NodeJs: Criando um Windows Service (sem pacotes npm)

Filipe Ceccon de Alencar
filipececcon

--

Atualmente precisei criar um serviço windows com Node. Obviamente para tudo no Node temos um pacote npm e fui esperançoso em encontrar algo lá e achei o pacote windows-service. De início pensei que fosse um simples install e pronto, mas não, você terá uma jornada ao fazer…

Você terá de instalar o Python 2.7, configurar variável de ambiente, configurar o node-gyp, instalar um Visual Studio Community 2015 para referenciar o compilador e etc… para mais detalhes sobre a instalação acesse a pagina do pacote npm windows-service.

Achei muito trabalhoso criar todo esse ambiente para fazer algo simples, com o prazo curto coloquei a minha bagagem de 5 anos trabalhando com suporte em prática. Resumindo vamos criar um serviço e apontar um batch para execução em looping.

Se você não sabe o que é um batch segue a definição abaixo:

Batch é um arquivo em lotes da Microsoft, normalmente utilizado para otimizar tarefas por técnicos e programadores. Um arquivo em lote é basicamente um arquivo de script que é executado sequencialmente pelo Prompt de comando.

- Google

Todo o projeto está no meu github:

Chega de papo e mão na massa!

Crie uma pasta em algum lugar do seu pc e dentro dela vamos criar o nosso script que irá ser rodado pelo serviço

Depois vamos criar o inicializador desse script

Para criar o serviço ao invés de usar o comando sc create usei um exe chamado NSSM (Non-Sucking Service Manager) que me facilitou muito a vida. Crie uma pasta na raiz do projeto chamada nssm e coloque o executável dele dentro dela. Agora vamos criar o batch de instalação do serviço na pasta raiz

Rode o install.bat como administrador

Crie mais uma pasta na raiz do projeto chamada logs e é lá que o serviço irá gerar seu arquivo de log.

Agora vamos rodar o serviço. Acesse o gerenciador de serviços (services.msc) e procure pelo serviço MY_SERVICE e inicie-o.

Se você tiver instalado na máquina um editor de texto que possibilite ver o arquivo de log em tempo real, conseguirá ver o serviço escrevendo no log. Recomendo o uso do Atom (falaremos mais sobre ele).

Seus serviços também ficam registrados no windows, para acessar a chave do registro do serviço criado, abra o regedit e busque pela chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MY_SERVICE

--

--

Filipe Ceccon de Alencar
filipececcon

Metaleiro, pai de família, programador e entusiasta do empreendedorismo