Às vezes, você precisa de um aplicativo ou script para continuar em execução, esteja você conectado ao computador ou não. Talvez seja um Script PowerShell para monitorar portas ou um servidor da web hospedando uma página em sua rede doméstica.
A questão é que se você deseja que um processo, script ou programa seja executado enquanto o computador estiver ligado, você precisará criar um Serviço Windows.
O que eu preciso para criar um serviço do Windows?
Para criar um serviço do Windows no Windows 10, existem alguns pré-requisitos:
O que é o gerenciador de serviços não sugador?
Sim, você não pode citar um nome como esse sem explicá-lo. Claro que o nome é lamentável, mas é preciso. O Non-Sucking Service Manager (NSSM) é sem dúvida a maneira mais fácil de criar um serviço do Windows que seja altamente confiável e configurável. Além disso, é gratuito e Software livre (OSS).
O NSSM pode ser usado através do Prompt de comando do Windows ou de uma interface gráfica do usuário (GUI ) Isso significa que qualquer pessoa pode usá-lo. O NSSM pode ser usado em qualquer versão do Windows anterior e incluindo o Windows 2000. Existem 32 bits e 64 bits versões. Se você estiver usando um computador de 64 bits, tente essa versão primeiro. Se não funcionar, volte para a versão de 32 bits.
Você pode baixe o NSSM do site, clone NSSM do Git ou instalar NSSM com Chocolatey. Chocolatey é um gerenciador de pacotes para Windows. Os métodos de instalação variam dependendo da rota que você segue. Consulte as instruções do NSSM. Para nosso exemplo, estamos baixando do site do NSSM e instalando-o em C: \ WINDOWS \ system32.
In_content_1 all: [300x250] / dfp: [640x360]->Criar um serviço do Windows com NSSM
Para este exemplo, criaremos um serviço de Script PowerShell para registrar Porcentagem de carga média da CPU.
Nota: Todas as linhas abaixo seguidas pelo símbolo # são comentários e não afetarão o script.
CLS #Optional. I like to use this to clear the terminal when testing.#Make sure you have a folder called Logs in the same directory as this script #The log is where the records will be stored. Start-Transcript -Path "$PSScriptRoot\Logs\log-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append #While loop keeps it running until manually stopped While ($True){ #Creates a timestamp to know when the measurement was taken $timeStamp = get-date -f yyyy-MM-h:mm:ss #Gets the average load percentage at that time, then waits 5 seconds to do it again. $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5 #Isolates just the average so there isn't a weird @{Average=13} string $cpuLoadPercent = $cpuLoadPercent.Average #writes results to screen, or in this case to the log Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent" } Stop-Transcript
Existem várias outras guias que podem ser usadas para personalizar o serviço. Para este exercício, os valores padrão nessas guias são suficientes. Selecione o botão Instalar serviço.
Remoção de um serviço do Windows Com NSSM
Talvez você não precise mais monitore sua CPU carregar, então você gostaria de se livrar do serviço. Felizmente, o NSSM torna isso fácil.
Isso é tudo. É uma boa ideia verificar o gerente de serviços para garantir que o serviço não esteja mais lá. Se você ainda vir o serviço, pode ser necessário atualizar a tela e ele deve ter sumido.
Os serviços são uma ótima maneira de executar aplicativos ou scripts que precisam ser executados o tempo todo, reinicie-se se eles falharem ou precisa de privilégios diferentes do usuário atual. Se você não precisa do seu aplicativo ou script para fazer todas essas coisas, considere usando uma tarefa agendada em vez disso.