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.
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.
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.
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%
)
Bom dia Tiago, tudo joia?
Opa, show de bola, obrigado por compartilhar.
Tenha uma ótima e abençoada quinta feira.
Um grande abraço.
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.