Programando iniciando um serviço após outro serviço

5

Eu tenho um serviço que precisa ser iniciado somente DEPOIS de outro serviço. Existe alguma maneira de configurar o serviço para apenas iniciar uma vez que outro tenha terminado de iniciar?

Obviamente, eu poderia usar um início atrasado ou escrever um script em lote para fazer isso, mas ambos são soluções confusas / temporárias. Então eu me perguntei se posso programar para que isso aconteça de alguma forma?

Pode ser feito?

    
por Nobody 14.09.2010 / 15:54

4 respostas

5

Na minha experiência, a melhor maneira de criar dependências de serviço, sem remexer no registro (algo que não é seguro, seguro ou facilmente programável por script == repetitivo) é usar o SC.exe - o utilitário de controle de serviço empacotado a cada Versão do Windows desde o Win2003.

Você pode abrir uma janela de comando e digitar sc para obter a ajuda completa, mas a essência dela é:

sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "netbios"

Cria um novo serviço, chamado "newservice", aponta para seu caminho, faz com que ele seja iniciado automaticamente e o torna dependente do serviço NetBIOS.

Leia mais sobre SC aqui .

    
por 14.09.2010 / 17:40
5

Você tem que usar o editor de registro (tanto quanto eu sei) para fazer o serviço depender do outro servidor. Localize o serviço dependente em HKLM\SYSTEM\CurrentControlSet\services e adicione um valor REG_MULTI_SZ chamado DependOnService . Coloque o nome do serviço (não o nome de exibição, mas o mesmo nome da sua chave reg) como um valor.

Quando você reinicializar agora, o Windows só iniciará seu serviço dependente depois que o serviço que você fez depender dos começos. Da mesma forma, se o serviço do qual ele depende não for iniciado, seu serviço dependente também não será iniciado.

    
por 14.09.2010 / 16:13
2

Contanto que o serviço seja implantado corretamente no webcontainer, quando você iniciar o tomcat, ele iniciará automaticamente o serviço como qualquer outro aplicativo da web. Esteja ciente de que o webservice implementado no webcontainer não é nada além de um serviço agrupado em um servlet que procura a solicitação SOAP por HTTP, exatamente como qualquer outro servlet.

    
por 14.09.2012 / 12:37
1

Você pode tornar o segundo serviço dependente do primeiro serviço e, em seguida, iniciar o segundo serviço em vez do primeiro serviço. O Windows garantirá que o primeiro serviço seja iniciado antes de iniciar o segundo serviço.

    
por 14.09.2010 / 16:07