Crie o serviço do Windows a partir do executável

Existe alguma maneira rápida de, dado um arquivo executável, criar um serviço do Windows que, quando iniciado, o lança?

Para criar um serviço do Windows a partir de um executável, você pode usar sc.exe :

 sc.exe create  binPath= "" 

Você deve ter aspas ao redor do caminho exe real e um espaço após o binPath= .

Mais informações sobre o comando sc podem ser encontradas no Microsoft KB251192 .

Observe que ele não funcionará para qualquer executável: o executável deve ser um Serviço do Windows ( ou seja, implementar o ServiceMain ). Ao registrar um executável sem serviço como um serviço, você receberá o seguinte erro ao tentar iniciar o serviço:

Erro 1053: o serviço não respondeu à solicitação de início ou controle em tempo hábil.

Existem ferramentas que podem criar um serviço do Windows a partir de executáveis ​​arbitrários que não são de serviço. Consulte as outras respostas para obter exemplos de tais ferramentas.

Use o NSSM ( o Gerenciador de serviços não- sugadores) para executar um arquivo .BAT ou qualquer arquivo .EXE como um serviço.

http://nssm.cc/

  • Passo 1 : Download do NSSM
  • Etapa 2 : Instale seu sevice com nssm.exe install [serviceName]
  • Etapa 3 : Isso abrirá uma GUI que você usará para localizar seu executável

Estendendo a resposta (Kevin Tong).

Passo 1: Baixe e descompacte nssm-2.24.zip

Etapa 2: do tipo de linha de comando:

C:\> nssm.exe install [servicename]

ele abrirá a GUI conforme abaixo (o exemplo é o servidor UT2003) e, em seguida, simplesmente navegue para: yourapplication.exe

insira a descrição da imagem aqui

Mais informações em: https://nssm.cc/usage

Muitas respostas existentes incluem intervenção humana no momento da instalação. Isso pode ser um processo propenso a erros. Se você tem muitos executáveis ​​que deseja instalar como serviços, a última coisa que você quer fazer é fazê-los manualmente no momento da instalação.

Para o cenário descrito acima, criei o serman , uma ferramenta de linha de comando para instalar um executável como um serviço. Tudo o que você precisa escrever (e escrever apenas uma vez) é um arquivo de configuração de serviço simples junto com seu executável. Corre

 serman install  

irá instalar o serviço. stdout e stderr são todos registrados. Para mais informações, dê uma olhada no site do projeto .

Um arquivo de configuração de trabalho é muito simples, conforme demonstrado abaixo. Mas também tem muitos resources úteis, como e abaixo.

  hello hello This service runs the hello application node.exe  "{{dir}}\hello.js" rotate      

estes extras são úteis .. precisam ser executados como um administrador

 sc install  binpath= sc stop  sc queryex  sc delete  

Se o seu nome de serviço tiver algum espaço, coloque em “aspas”.

Eu testei um bom produto para isso: AlwaysUp . Não é grátis, mas eles têm um período de teste de 30 dias para que você possa experimentá-lo …