Windows 10: Serviço aparentemente não está sendo executado na inicialização, mesmo quando definido como Automático (Início Atrasado)

0

Eu registrei um serviço personalizado chamado customService com Automatic (Delayed Start) como sua opção de tipo de inicialização. Foi criado usando o NSSM com o seguinte comando

nssm install customService

Ele executa um arquivo de lote simples, customService.bat contendo dois comandos simples do Windows

cd D:\To\Custom\Path
type NUL > 1.txt

O que o serviço faz é executar esse arquivo em lote que criaria um arquivo de texto vazio, 1.txt na pasta \ To \ Custom \ Path.

Problema

Quando eu encerro e inicializo minha máquina, nenhum 1.txt é criado. No entanto, em services.msc, ele mostra customService status como em execução. Por que isso está acontecendo?

O que descobri

  1. Quando o problema ocorre, em Registros de eventos > Logs do Windows > Aplicação, não há erro produzido. O último log gravado é de MSSQLSERVER service com o Nível de Informação e ID do Evento de 8128. Já se passaram exatamente 15 minutos.
  2. Em services.msc > customService status mostra em execução. Quando clico nele com o botão direito, tenho permissão para pelo menos três opções: Parar, Pausar e Reiniciar. O serviço é executado com êxito (ou seja, 1.txt criado) quando eu cliquei em Restart .
  3. Em services.msc > customService properties > Aba Dependências, mostra não Dependências
  4. Eu não tenho absolutamente nenhum problema quando reinicio meu computador (ou seja, 1.txt é criado.)

Especificações do Windows

Eu tenho Windows 10 Version 1607 (OS Build 14393.576) como mostrado ao executar o comando winver . Além disso, tenho todas as atualizações instaladas.

    
por Mark 09.01.2017 / 05:04

2 respostas

1

Como você definiu o serviço? Documentação sugere que você tenha comandos de execução como:

nssm set UT2003 Application C:\games\ut2003\System\UCC.exe
nssm set UT2003 AppDirectory C:\games\ut2003\System

(Substituindo o caminho para o seu arquivo de lote)

Em qualquer caso, o NSSM parece um exagero aqui. Por que não apenas usar o Agendador de Tarefas?

    
por 09.01.2017 / 06:30
0

Disclaimer: Esta é apenas uma solução grosseira que espero que possa ser útil para os outros, não uma correção. A solução alternativa é usar o Agendador de Tarefas.

Tenho uma profunda suspeita de que esse problema é causado por problemas na conta de usuário, embora eu não tenha nenhuma evidência concreta por escrito sobre isso

Cheguei a essa suspeita quando tentei usar Agendador de Tarefas para iniciar meu arquivo .bat em vez de usar um Serviço. Quando eu o configurei para Run on system startup , após a inicialização, havia uma guia Aviso na História da minha tarefa criada informando Task Scheduler did not launch task because user "(NONE)" was not logged on when the launching conditions were met . Daí a razão pela qual eu acho que esse problema está de alguma forma ligado a problemas de conta de usuário, embora eu possa estar errado porque nenhum aviso / erro ocorre em logs de eventos quando eu usei serviços para iniciar o meu arquivo de lote.

Portanto, configurei-o para executar after logged on e não houve problemas na execução dessa tarefa na inicialização. Não tenho certeza se esse tipo de configuração também pode ser definido para Serviços. Esta também pode ser a razão pela qual as pessoas tendem a usar a configuração Automatic (Delayed Start)

Observe que definir essa tarefa para executar after logged on fará com que ela seja executada quando você fizer login. Ele não será executado quando você fizer login após bloquear seu computador ,

    
por 09.01.2017 / 07:27