Talvez você possa analisar Servify This
Deve fazer o que você está pedindo.
Eu quero usar um arquivo executável (que ostenta apenas uma interface de linha de comando) como um serviço no Windows 7.
Eu adicionei para o sucesso via:
sc MySVC binPath= "C:\Windows\System32\MyProgram.exe"
mas depois de tentar iniciá-lo, o tempo limite é 1053.
O que estou fazendo de errado?
Talvez você possa analisar Servify This
Deve fazer o que você está pedindo.
Você disse: "Ostenta apenas uma interface de linha de comando", isso não faz diferença, pois, sempre, um serviço pode ser executado como uma linha de comando ou uma GUI (limites / segurança dependendo).
Eu pessoalmente verificaria o aplicativo mais de perto, se ele estivesse logando como um usuário (serviço por exemplo) ele tem os caminhos necessários e / ou você está dando todas as chamadas / argumentos necessários no começo? / p>
Se o programa que você está tentando executar como um serviço requer entrada do usuário, isso pode estar causando o tempo limite. Tente executar o programa a partir da linha de comando com os mesmos flags e switches que você configurou para executar o serviço e ver o que acontece. Você pode precisar de flags / switches adicionais para fazê-lo funcionar sem a entrada do usuário, ou canalizar entrada de outro programa / arquivo através de uma chamada de script para o programa (arquivo em lote, script powershell, etc).
Eu uso três métodos:
1.- Comando SC, apenas relacionado acima.
2.- SrvAny
do Windows Resource Kit .
3.- AlwaysUp (não livre :-(). O melhor até agora.
Para não repetir postagens, aqui são os detalhes:
Dê uma olhada em NSSM - "o gerente de serviços que não está sugando" .
O NSSM é criado exatamente para essa finalidade e também para monitorar & reinicialização automática desse aplicativo de console. É usado, por exemplo por SaltStack e outros.
É licenciado como domínio público app.