Como executar qualquer programa como serviço em segundo plano no Windows

aas_top

Se você for como a maioria dos usuários do Windows, terá vários pequenos utilitários excelentes que são executados quando você inicia o Windows. Embora isso funcione muito bem para a maioria dos aplicativos, há alguns que seria bom iniciar antes mesmo de um usuário efetuar login no PC. Para fazer isso, você precisará executar o aplicativo como um serviço do Windows.

Os serviços do Windows são uma classe especial de programas configurados para serem iniciados e executados em segundo plano, geralmente sem qualquer tipo de interface de usuário e sem a necessidade de um usuário efetuar login no PC. Muitos gamers e usuários avançados os conhecem como aquelas coisas que você costumava desativar para ajudar a acelerar o seu sistema, embora isso realmente não seja mais necessário .

A principal vantagem de executar um aplicativo como um serviço é que você pode iniciar um programa antes que um usuário faça login. Isso pode ser particularmente importante com aplicativos que fornecem serviços importantes que você deseja que estejam disponíveis quando estiver longe do computador.

Um exemplo perfeito disso é o Plex , um aplicativo de servidor de mídia que pode transmitir conteúdo local para praticamente qualquer dispositivo seu. Claro, você poderia deixá-lo na bandeja do sistema como um programa normal, mas e se o computador reiniciar devido a uma queda de energia ou atualizações programadas? Até que você efetue login novamente no PC, o Plex não estará disponível. Isso é irritante se você tiver que correr para outra sala para reiniciar o Plex enquanto sua pipoca esfria, e super irritante se você estiver fora da cidade e tentando transmitir sua mídia pela Internet. Configurar o Plex como um serviço resolveria esse problema.

Recomendado:  Como começar a monitorar análises de mídia social com ferramentas gratuitas

Antes de começar, você deve estar ciente de algumas advertências importantes para executar um aplicativo como um serviço:

  • O aplicativo não colocará um ícone na bandeja do sistema. Se você precisar que a interface esteja disponível regularmente para um aplicativo, ela pode não ser mais adequada para ser executada como um serviço.
  • Quando precisar fazer alterações ou atualizações na configuração, você precisará interromper o serviço, executar o programa como um aplicativo normal, fazer o que for necessário, interromper o programa e, em seguida, iniciar o serviço novamente.
  • Se o programa já estiver configurado para ser executado quando o Windows iniciar, você precisará desabilitar isso para não terminar com duas instâncias em execução. A maioria dos programas tem uma opção na interface para alternar essa configuração. Outros podem se adicionar à sua pasta de inicialização , para que você possa removê-los lá.

Pronto para lançar? Vamos falar sobre como configurá-lo.

Etapa um: instalar SrvStart

Para executar um aplicativo como serviço, você precisará de um pequeno utilitário de terceiros. Existem vários por aí, mas nosso favorito é SrvStart . Ele foi originalmente projetado para Windows NT e funcionará com praticamente qualquer versão do Windows a partir do Windows XP.

Para começar, vá para a página de download SrvStart e pegue o utilitário. O download contém apenas quatro arquivos (dois arquivos DLL e dois EXE). Não há instalador; em vez disso, copie-os para a C:\Windowspasta do seu computador e para a pasta principal do Windows para “instalar” o SrvStart.

aas_4

Também presumiremos que você já instalou e configurou qualquer programa que vai transformar em serviço, mas se ainda não o fez, agora seria um bom momento para fazer isso também.

Recomendado:  Como solucionar problemas remotamente de um PC com Windows de um amigo sem nenhum software extra

Etapa dois: criar um arquivo de configuração para o novo serviço

Em seguida, você deseja criar um arquivo de configuração que SrvStart irá ler para criar o serviço. Há muito que você pode fazer com SrvStart, e você pode ler os detalhes completos sobre todas as opções de configuração na página de documentação . Para este exemplo, vamos usar apenas dois comandos :, startupque especifica o programa a ser iniciado e shutdown_method, que diz a SrvStart como fechar o programa quando o respectivo serviço for interrompido.

Abra o Bloco de notas e crie seu arquivo de configuração usando o formato abaixo. Aqui, estamos usando Plex, mas você pode criar um arquivo para qualquer programa que deseja executar como um serviço. O startupcomando simplesmente especifica o caminho onde o arquivo executável reside. Para o shutdown_methodcomando, estamos usando o winmessageparâmetro, que faz com que SrvStart envie uma mensagem de fechamento do Windows para todas as janelas abertas pelo serviço.

[Plex]
inicialização = "C: \ Arquivos de programas (x86) \ Plex \ Plex Media Server \ Plex Media Server.exe"
shutdown_method = winmessage

Obviamente, ajuste o caminho e o nome de acordo com o programa que você está iniciando.

aas_1_v2

Salve o novo arquivo de configuração onde desejar e substitua a extensão .txt por uma extensão .ini. Anote o nome do arquivo, pois precisaremos dele na próxima etapa. Para facilitar a digitação no prompt de comando, sugerimos salvar este arquivo temporariamente direto em sua unidade C :.

Etapa três: usar o prompt de comando para criar o novo serviço

A próxima etapa é usar o comando Windows Service Controller (SC) para criar o novo serviço com base nos critérios do arquivo de configuração. Abra o Prompt de Comando clicando com o botão direito do mouse no menu Iniciar (ou pressionando Windows + X), escolhendo “Prompt de Comando (Admin)” e clicando em Sim para permitir sua execução com privilégios administrativos.

Recomendado:  6 maneiras de obter mais do Microsoft Whiteboard

tl_start

No prompt de comando, use a seguinte sintaxe para criar o novo serviço:

SC CREATE <servicename> Displayname = "<servicename>" binpath = "srvstart.exe <servicename> -c <caminho para o arquivo de configuração srvstart>" start = <starttype>

Há algumas coisas a serem observadas nesse comando. Primeiro, cada sinal de igual (=) tem um espaço depois dele. Isso é obrigatório. Além disso, o <servicename>valor depende inteiramente de você. E, finalmente, para o <starttype>valor, você deseja usar autopara que o serviço seja iniciado automaticamente com o Windows.

Portanto, em nosso exemplo Plex, o comando ficaria assim:

SC CREATE Plex Displayname = "Plex" binpath = "srvstart.exe Plex -c C: PlexService.ini" start = auto

Sim, você leu certo: eu usei em C:PlexService.inivez de C:\PlexService.ini. O comando requer que você remova a barra.

Ao executar o comando, você deverá receber uma mensagem de SUCESSO se tudo correr bem.

aas_2

Deste ponto em diante, seu novo serviço será executado sempre que o Windows iniciar. Se você abrir a interface de serviços do Windows (basta clicar em Iniciar e digitar “Serviços”), você pode localizar e configurar o novo serviço como faria com qualquer outro.

aas_3

E isso é tudo que há para fazer. Se você tem aplicativos que iniciam com o Windows e prefere que eles iniciem sem a necessidade de um usuário fazer login, é fácil transformar qualquer aplicativo em um serviço. Acabamos de tocar no método básico para criar e executar um novo serviço, mas há muito mais que você pode fazer com SrvStart para ajustar como um serviço é executado. Certifique-se de verificar a documentação se quiser saber mais.