Fiz o download do executável node.js. Como posso executar esse executável como serviço do Windows? Não consigo usar o instalador do node.js. padrão, pois preciso executar várias versões do node.j simultaneamente.
130
Fiz o download do executável node.js. Como posso executar esse executável como serviço do Windows? Não consigo usar o instalador do node.js. padrão, pois preciso executar várias versões do node.j simultaneamente.
Tarde para a festa, mas as janelas do nó também farão o truque.
Ele também possui o log do sistema incorporado.
Existe uma API para criar scripts a partir do código, ou seja,
var Service = require('node-windows').Service;
// Create a new service object
var svc = new Service({
name:'Hello World',
description: 'The nodejs.org example web server.',
script: 'C:\\path\\to\\helloworld.js'
});
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
svc.start();
});
svc.install();
FD: Eu sou o autor deste módulo.
Achei a coisa tão útil que criei um wrapper ainda mais fácil de usar ( npm , github ).
Instalando-o:
Instalando seu serviço:
Desinstalando seu serviço:
fonte
O WinSer é um empacotador amigável do node.js. em torno do popular NSSM (Non-Sucking Service Manager)
fonte
Deste blog
fonte
Não estou abordando a questão diretamente, mas fornecendo uma alternativa que também pode atender aos seus requisitos de uma maneira mais node.js.
Funcionalmente, os requisitos são:
Esses requisitos podem ser satisfeitos usando um gerenciador de processos (PM) e iniciando o gerenciador de processos na inicialização do sistema. Duas PMs boas que são compatíveis com o Windows são:
Para fazer o PM iniciar automaticamente, a maneira mais simples é criar uma tarefa agendada com o gatilho "Na inicialização":
fonte
pm2
usar um script em lotes na inicialização, inclua as variáveis de ambiente ou elas não funcionarão. Discutido aqui: github.com/Unitech/pm2/issues/1079A abordagem do gerenciador de processos + agendador de tarefas que publiquei há um ano funciona bem com algumas instalações de serviços pontuais. Recentemente, porém, comecei a projetar o sistema de maneira microsserviços, com muitos pequenos serviços conversando via IPC. Portanto, a configuração manual de cada serviço se tornou insuportável.
Com o objetivo de instalar serviços sem configuração manual, criei o serman , uma ferramenta de linha de comando (instale com
npm i -g serman
) para instalar um executável como serviço. Tudo o que você precisa escrever (e escrever apenas uma vez) é um arquivo de configuração de serviço simples, juntamente com o seu executável. Correinstalará o serviço.
stdout
estderr
estão todos registrados. Para mais informações, consulte o site do projeto .Um arquivo de configuração de trabalho é muito simples, como demonstrado abaixo. Mas também possui muitos recursos úteis, como
<env>
e<persistent_env>
abaixo.fonte