none
Executar comandos apos um serviço parar RRS feed

  • Pergunta

  • Sr.s

    Gostaria de ajuda para criar um .bat que faz a seguinte tarefa:

    Envia um comando de Stop para um determinado serviço

    Fica em loop chegando o status desse serviço ate ele entrar no estado de Stop

    Apos entrar em Stop, executa outros comandos q ja  tenho feito.

    Tenho um serviço q preciso parar antes de executar um backup, porem a base dele é tão grande q demora para parar o serviço, por isso a necessidade da .bat chegar se realmente o serviço esta no estado de Stop antes de continuar com os outros comandos.

    Obrigado.

    sexta-feira, 25 de setembro de 2015 01:37

Respostas

  • Consegui fazer um loop que me atendeu, segue para documentação.

    :loop

    sc query "Lotus Domino Server (FIBMLotusDominodata)" | find /i "STATE              : 3  STOP_PENDING"

    IF %errorlevel% EQU  0 (
            Echo "Servico Domino UP"
        Echo "Aguardando 10s para recehgar servico"
            ping 127.0.0.1 -n 10 > c:\temp\null
        GOTO loop
       ) ELSE (
           Echo "Servico Domino Down"
           diskshadow /s C:\Bacula\create_part_shadow.dsh
           ping 127.0.0.1 > c:\temp\null
       )

    • Marcado como Resposta Jeferson Danine terça-feira, 27 de outubro de 2015 13:56
    terça-feira, 27 de outubro de 2015 13:56

Todas as Respostas

  • So para adiantar, ja usei o Net Stop porem o serviço demora tanto para parar q o Net Stop da um erro pois excede o tempo maximo permitido para o serviço parar, mas depois de um tempo ele para normalmente. Como o Net Stop da um erro, e .bat continua executando o script fazendo com q o backup seja executado sem a parada total do serviço.
    sexta-feira, 25 de setembro de 2015 02:02
  • Consegui fazer um loop que me atendeu, segue para documentação.

    :loop

    sc query "Lotus Domino Server (FIBMLotusDominodata)" | find /i "STATE              : 3  STOP_PENDING"

    IF %errorlevel% EQU  0 (
            Echo "Servico Domino UP"
        Echo "Aguardando 10s para recehgar servico"
            ping 127.0.0.1 -n 10 > c:\temp\null
        GOTO loop
       ) ELSE (
           Echo "Servico Domino Down"
           diskshadow /s C:\Bacula\create_part_shadow.dsh
           ping 127.0.0.1 > c:\temp\null
       )

    • Marcado como Resposta Jeferson Danine terça-feira, 27 de outubro de 2015 13:56
    terça-feira, 27 de outubro de 2015 13:56