Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: 🚀 **Depurando Blocos de Código (xBase)** 🚀

🚀 **Depurando Blocos de Código (xBase)** 🚀 Interessante a abordagem de **Blocos de Código** no **Harbour**! Eles funcionam literalmente como "cidadãos de primeira classe", permitindo até mesmo depuração passo a passo. 🔍 **Exemplo Prático:** ```xBase Eval( {|aFunTst as array| LOCAL lValid AS LOGICAL LOCAL i AS NUMERIC FOR i := 1 TO Len(aFunTst) // Verifica resultado esperado lValid := aFunTst[i][3] IF lValid SetColor("g+/n") QOut("(" + aFunTst[i][2] + "): passed") SetColor("") ELSE SetColor("r+/n") QOut("(" + aFunTst[i][2] + "): failed") SetColor("") ENDIF NEXT i RETURN NIL }, aFunTst ) ``` 🤔 **Pergunta aos escovadores de bit de plantão:** É pos...

Protheus :: Usando Taskkill para forçar o reinicio dos serviços


Às vezes faz-se necessário reiniciar os serviços do protheus mas através do "serviço" do Windows® isso se torna impossível pois podem existir muitos processos pendentes a interrupção dos serviços . Então podemos fazer uso da ferramenta "taskkill" que no exemplo abaixo está em um "script" em Windows® PowerShell®. Nesse exemplo existem quatro serviços do protheus sendo executados com os seguintes nomes: P10Server5110, P10Server5210, P10Server5310 e P10Server5410 onde P10Server corresponde ao Prefixo do serviço e 5110 a 5410 às portas em que eles escutam.

$IniPort = 5110
$EndPort = 5911
$PrefixProcess = "P10Server"
$NameProcess = ""
for ( $Port = $IniPort ; $Port -le $EndPort ; $Port+=100 )
{
$NameProcess = $PrefixProcess+$Port
if ( get-service | where { $_.status -eq "stopped" -and $_.name -eq $NameProcess} )
{
while ( get-service | where { $_.status -eq "stopped" -and $_.name -eq $NameProcess } )
{
start-service $NameProcess
}
}
elseif ( get-service | where { $_.name -eq $NameProcess} )
{
invoke-expression -command 'taskkill -f -fi "SERVICES eq $NameProcess" /t'
start-sleep -seconds 10
while ( get-service | where { $_.status -lt "running" -and $_.name -eq $NameProcess } )
{
start-service $NameProcess
}
}
}

Para que o "script" possa ser executado faz-se necessário autoriza-lo através do Windows® PowerShell®, sendo assim, execute oWindows® PowerShell® e digite o seguinte comando: get-help about_signing. Esse comando irá listar as opções de "Diretivas de Assinatura e de Execução" de "Script", leia-as atentamente. Mas se quiser pular esse passo (eu não recomendo) digite o seguinte comando no Windows® PowerShell®: Set-ExecutionPolicy Unrestricted. Esse comando fará que qualquer "Script" seja executado em sua máquina (mas atente para os ítens de segurança listados à partir do comando get-help about_signing).

Comentários

Postagens mais visitadas