Pages

Wednesday, April 9, 2014

Múltiplas instâncias do mesmo serviço windows

Normalmente para instalar/desinstalar serviços windows uso a ferramenta InstallUtil, mas surgiu a necessidade de ter o mesmo serviço instalado múltiplas vezes na mesma maquina (um para DEV e outro para STAGING)

Se para usar o InstallUtil teria de ter dois serviços para terem nomes distintos e poderem residir na mesma maquina, o que não me faz sentido ... por isso pesquisei e encontrei outra ferramenta que faz exactamente o que preciso e muito mais :)

A aplicação Sc.exe permite fazer tudo o que podemos fazer pela aplicação "Serviços" do painel de controlo mas através da linha de comandos.

Para criar duas instancias do mesmo serviço podemos fazer:
   sc.exe create Servico.De.Exemplo.Dev   
     binPath= "caminho.completo.para.o.serviço.de.dev"   
     DisplayName= "Servico De Exemplo Dev"   
     start= auto  
     obj= "utilizador@dominio"  
     password= "password do utilizador"  
   
   sc.exe create Servico.De.Exemplo.Staging   
     binPath= "caminho.completo.para.o.serviço.de.staging"   
     DisplayName= "Servico De Exemplo Staging"  
     start= auto  
     obj= "utilizador@dominio"  
     password= "password do utilizador"  

Desta forma criamos os serviços "Servico.De.Exemplo.Dev" e "Servico.De.Exemplo.Staging" com arranque automático e que correm com a conta de utilizador "utilizador@dominio"

Esta aplicação também permite que controlemos os serviços, podemos iniciar ou parar os serviços:
   sc.exe start Servico.De.Exemplo.Dev  
   sc.exe stop Servico.De.Exemplo.Dev  

NOTA 1: Não esquecer de deixar um espaço sempre a seguir ao "=" senão ele não interpreta bem a opção e não corre o comando.

NOTA 2: Esta aplicação permite ter como alvo um servidor remoto, para isso basta indicar o nome antes da acção "sc.exe \\remote.server create ..."


Fonte: Installing multiple instances of the same windows service on a server

No comments:

Post a Comment