Batch para reiniciar os serviços do Protheus

No artigo de hoje, vamos demonstrar um batch simples para reiniciar os serviços do Protheus.

Há um bom tempo atrás, fizemos um artigo demonstrando a ordem correta de parar e subir os serviços do Protheus, que esta nesse link – https://terminaldeinformacao.com/2020/12/29/como-reiniciar-os-servicos-do-protheus-na-ordem-correta .

Mas conforme sugestão de alguns alunos, decidimos montar esse artigo.

A ideia aqui é pegar o nome dos serviços do Protheus, e reiniciar eles através de um arquivo .bat

Então vamos fazer as seguintes suposições, todos nossos serviços estão no mesmo servidor, e os nomes são:

  • License Server: totvsLicense
  • DbAccess: totvsDbAccess
  • Protheus: totvsProtheus
  • Protheus Desenvolvimento: totvsDesenvolvimento
  • Protheus WebServices: totvsWS

 

Observação: Para você conferir o nome dos serviços na sua base, abra o services.msc do Windows e clique com o botão direito no serviço e depois em Propriedades, ai veja o Service Name, conforme print abaixo.

Pegando o nome do serviço

 

Agora que temos o nome dos serviços, vamos criar o nosso bat, sendo que o primeiro passo é reiniciar os serviços e depois subir, nesse nosso exemplo, não vamos precisar reiniciar o License Server, apenas a partir do DbAccess, então ficaria assim:

echo off
cls
echo Parando os servicos
net stop totvsWS
net stop totvsDesenvolvimento
net stop totvsProtheus
net stop totvsDbAccess

echo Iniciando os servicos
net start totvsDbAccess
net start totvsProtheus
net start totvsDesenvolvimento
net start totvsWS

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

6 Responses

  1. Tiago Fonseca Lima de Moraes disse:

    Boa noite Atilio, eu costumo usar um batch para finalizar os serviços após uns 3 minutos que rodei o batch para parar. Appserver costuma travar em “Parando” e não terminar, o finalizar resolveria isso

    • Bom dia Tiago, tudo joia?

      Entendi, você poderia tentar no seu batch, adicionar alguma lógica, para tentar buscar o PID do serviço.

      E ai se o serviço ficou travado em “Parando”, você executaria o comando taskkill passando esse PID e o argumento -f para forçar a finalização do processo no Windows.

      Tenha uma ótima e abençoada quarta feira.

      Um grande abraço.

      • Tiago Fonseca Lima de Moraes disse:

        Isso mesmo, eu uso assim

        @echo OFF

        REM OUTROS

        FOR /F “tokens=3” %%A IN (‘sc queryex PROTHEUS_JOBS ^| findstr PID’) DO (SET pid=%%A)
        IF “!pid!” NEQ “0” (
        taskkill /F /PID %pid%
        )

        FOR /F “tokens=3” %%A IN (‘sc queryexPROTHEUS_SCHEDULE ^| findstr PID’) DO (SET pid=%%A)
        IF “!pid!” NEQ “0” (
        taskkill /F /PID %pid%
        )

  2. Jose de Aguiar Ferreira Real Neto disse:

    Bom dia. Criei do jeito que vc passou net stop .Appserver ConexaoNFe, mas não executou deu essa mensagem
    Parando os servicos
    A sintaxe deste comando é:

    NET STOP
    service

    Pressione qualquer tecla para continuar. . .

    Essa ultima é o PAUSE q coloquei

    • Bom dia José, tudo joia?

      Pode ser pelo motivo de ter espaço em branco no nome.

      Faça um teste, ao invés desse comando:
      net stop .Appserver ConexaoNFe

      Tente executar assim:
      net stop “.Appserver ConexaoNFe”

      Tenha uma ótima e abençoada quarta feira.

      Um grande abraço.

Deixe uma resposta

Terminal de Informação