Esta lição fornece uma visão geral fundamental dos arquivos de unidade systemd e como gerenciá-los com systemctl, a principal ferramenta para controlar o sistema init. Abordaremos a estrutura básica de um arquivo de unidade e os comandos essenciais para gerenciar serviços Linux.
Entendendo um Arquivo de Unidade Systemd
A unit file (arquivo de unidade) do systemd é um arquivo de texto simples que descreve um serviço, um ponto de montagem, um dispositivo ou outro recurso que o systemd pode gerenciar. Aqui está um exemplo básico de um arquivo de unidade de serviço chamado foobar.service:
[Unit]
Description=Meu Serviço Foobar
After=network.target
[Service]
ExecStart=/usr/bin/foobar
[Install]
WantedBy=multi-user.target
Este arquivo de serviço simples é dividido em seções:
- [Unit]: Esta seção contém metadados e informações de dependência. A diretiva
Descriptionfornece um nome legível para a unidade. Diretivas comoAftereBeforecontrolam a ordem de inicialização, garantindo que esta unidade inicie após a rede estar disponível. - [Service]: Esta seção define como gerenciar o serviço. A diretiva
ExecStarté crucial, pois especifica o comando a ser executado para iniciar o serviço. Outras diretivas comoExecStopeExecReloadpodem definir como parar ou recarregar o serviço. - [Install]: Esta seção define o comportamento da unidade quando ela é habilitada ou desabilitada com
systemctl. A diretivaWantedByinforma ao systemd para iniciar este serviço como parte de um alvo específico, como omulti-user.targetpara uma inicialização padrão não gráfica.
Este é apenas um vislumbre dos arquivos de unidade systemd. Para configurações mais avançadas, é altamente recomendada uma leitura adicional sobre o tópico.
Comandos Essenciais do Systemctl
Agora, vamos explorar os comandos essenciais do systemctl que você usará para interagir com as unidades systemd e gerenciar serviços Linux.
Listando Unidades Systemd
Para ver todas as unidades ativas que o systemd está gerenciando atualmente, use o comando list-units.
systemctl list-units
Verificando o Status de uma Unidade
Para visualizar o status detalhado de uma unidade específica, incluindo se ela está ativa, habilitada e suas entradas de log mais recentes, use o comando status.
systemctl status networking.service
Gerenciando Estados de Serviço
Você pode controlar o estado de execução de um serviço usando start, stop e restart.
Para iniciar um serviço imediatamente:
sudo systemctl start networking.service
Para parar um serviço em execução:
sudo systemctl stop networking.service
Para parar e depois iniciar o serviço novamente:
sudo systemctl restart networking.service
Habilitando e Desabilitando Serviços
Habilitar um serviço cria um link simbólico que o conecta ao processo de inicialização, garantindo que ele inicie automaticamente. Desabilitá-lo remove esse link.
Para habilitar um serviço para iniciar na inicialização:
sudo systemctl enable networking.service
Para desabilitar um serviço de iniciar na inicialização:
sudo systemctl disable networking.service
Estes comandos são os blocos de construção para o gerenciamento de serviços em sistemas Linux modernos. Dominá-los é um passo fundamental em sua jornada Linux.