Desenvolvimento

Como fazer o WSL executar serviços na inicialização

Para este artigo será necessario ter o WSL – Windows Subsystem for Linux – já instalado, veja esse artigo para saber como instalar ele independente do seu Sistema operacional, Windows 10/11 ou qual distribuição usar, por exemplo: Ubuntu ou Debian.

O que é o WSL e para que serve?

WSL (Windows Subsystem for Linux) é uma tecnologia da Microsoft que permite executar distribuições Linux dentro do Windows, facilitando o desenvolvimento de software multiplataforma.

Vamos demonstrar duas formas para iniciar serviços no boot do wsl, a primeira envolve o uso de arquivo de configuração do usuário enquanto o outro envolve o uso de arquivo de configuração do WSL.

Iniciando Serviços via Bash

Uma opção bastante comum de executar serviços ou definir variáveis de ambiente para o usuario linux é através do .bachrc. Este arquivo fica na raiz do usuário e com ele podemos fazer modificações para adicionar atalhos ou no nosso caso, queremos fazer que ele rode a inicialização de um programa toda vez que abrimos um terminal bach (Bourne Again Shell) wsl, visto que nesse momento ele também roda o .bachrc (Bourne Again SHell Run Commands)

O seguinte comando deve ser rodado no seu terminal wsl e ele indica que o WSL deve rodar com root o comando que inicia o docker, use um editor de texto de sua preferencia para abrir o arquivo no nosso caso usamos o nano

nano ~/.bashrc
Bash

Depois de abrir insera a linha no final do arquivo, esse comando indica para o WSL em modo root rodar o comando shell que no nosso caso é o start do docker.

wsl.exe -u root -e sh -c "service docker start"
Bash

No final da edição do arquivo use o comando source para sincronizar as mudanças com o seu terminal corrente, nesse exemplo já poderiamos usar comandos docker para testar o serviço.

source ~/.bashrc
Bash

Iniciando Serviços via WSL Config

O wsl.conf é um arquivo poderoso para parametrizar recursos da distribuição por exemplo uso de memória ram e cpu, ponto de montagem e no nosso caso serviços que queremos que inicie no boot do sistema. Para isso edite o arquivo wsl.conf utilizando o comando a seguir:

sudo nano /etc/wsl.conf
Bash

Depois inserimos as seguinte linhas, onde em command deve ter o comando que deseja executar, no nosso exemplo vamos inicializar o docker no boot:

[boot]
command="service docker start"
Bash

Após salvar o arquivo use o CMD ou Powershell para reiniciar o WSL.

wsl --shutdown
Bash

WSL config ou bachrc qual escolher?

O “wsl.config” é um arquivo de configuração global para o Windows Subsystem for Linux (WSL), enquanto o “.bashrc” é um arquivo de configuração específico do shell BASH usado para personalizar o ambiente do usuário no Linux dentro do WSL, ambos devem te atender para iniciar serviços mas podem ter recursos que vão mais em encontro de acordo com a necessidade do usuario.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.