Introdução
Bem-vindo a este laboratório prático sobre gerenciamento de serviços Linux. Os serviços no Linux são processos em segundo plano que lidam com funções críticas do sistema, como conectividade de rede, registro de logs (logging), impressão e muito mais. Gerenciar esses serviços de forma eficiente é uma habilidade essencial para administradores Linux.
Neste laboratório, você aprenderá a usar o comando systemctl, que faz parte do systemd - o sistema de inicialização (init system) e gerenciador de serviços padrão para a maioria das distribuições Linux modernas. Você praticará a verificação do status dos serviços, o controle dos serviços, iniciando-os e parando-os, e configurando o comportamento dos serviços no momento da inicialização do sistema.
Ao final deste laboratório, você entenderá os conceitos básicos do gerenciamento de serviços Linux, permitindo que você controle efetivamente os serviços do sistema em um ambiente Linux.
Entendendo e Verificando o Status dos Serviços do Sistema
Nesta etapa, você aprenderá como verificar o status dos serviços do sistema usando o comando systemctl. Compreender o status do serviço é o primeiro passo para um gerenciamento de serviço eficaz.
O que são Serviços do Sistema?
Serviços do sistema (ou daemons) são programas que são executados em segundo plano para realizar várias tarefas do sistema. Eles normalmente iniciam na inicialização e continuam em execução até que o sistema seja desligado. Exemplos incluem servidores web, servidores de banco de dados, servidores SSH e serviços de impressão.
Verificando o Status do Serviço
Vamos começar verificando o status do serviço SSH (sshd), que é comumente usado para acesso remoto a sistemas Linux:
Abra um terminal no ambiente da VM LabEx. Você já deve estar no diretório padrão, que é
/home/labex/project.Execute o seguinte comando para verificar o status do serviço SSH:
systemctl status sshdVocê deve ver uma saída semelhante a esta:
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2023-10-25 08:15:00 UTC; 1h 30min ago Docs: man:sshd(8) man:sshd_config(5) Process: 1234 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 1235 (sshd) Tasks: 1 (limit: 4915) Memory: 5.6M CPU: 500ms CGroup: /system.slice/ssh.service └─1235 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startupsEsta saída fornece informações importantes sobre o serviço:
- Loaded: Mostra se o serviço está carregado e se está habilitado para iniciar na inicialização
- Active: Mostra se o serviço está atualmente em execução
- Process/Main PID: Exibe o ID do processo do serviço
- Memory/CPU: Mostra o uso de recursos
- Logs: Entradas de log recentes relacionadas ao serviço
Se você precisar verificar o status de um serviço diferente, você pode substituir
sshdpelo nome desse serviço. Por exemplo, para verificar o status do servidor web Apache (se instalado):systemctl status apache2
Listando Todos os Serviços
Você pode listar todos os serviços em seu sistema com o seguinte comando:
Para listar todos os serviços ativos:
systemctl list-units --type=service --state=activeEste comando mostra todos os serviços que estão atualmente ativos em seu sistema.
Para listar todos os serviços, independentemente do seu estado:
systemctl list-units --type=service --all
Criando um Arquivo de Lista de Serviços
Agora, vamos criar um arquivo para armazenar uma lista de todos os serviços em execução no sistema:
Crie um arquivo chamado
services_list.txtno diretório atual executando:systemctl list-units --type=service --state=running > ~/project/services_list.txtEste comando executa
systemctl list-unitse redireciona sua saída para um arquivo chamadoservices_list.txtem seu diretório de projeto.Verifique se o arquivo foi criado e contém dados:
cat ~/project/services_list.txtVocê deve ver uma lista de todos os serviços em execução em seu sistema.
Nesta etapa, você aprendeu como verificar o status dos serviços e como criar uma lista de todos os serviços em execução em seu sistema. Essa informação é valiosa para entender quais serviços estão ativos e como eles estão configurados.
Controlando Serviços do Sistema: Iniciar, Parar e Reiniciar
Nesta etapa, você aprenderá como iniciar, parar e reiniciar serviços do sistema. Essas operações são essenciais para a manutenção, solução de problemas e aplicação de alterações de configuração dos serviços.
Iniciando e Parando Serviços
Vamos praticar o controle do serviço SSH:
Primeiro, verifique o status atual do serviço SSH:
systemctl status sshdObserve se o serviço está atualmente ativo ou inativo.
Agora, pare o serviço SSH:
sudo systemctl stop sshdEste comando para o serviço imediatamente. Se for bem-sucedido, não haverá saída deste comando.
Verifique se o serviço foi parado:
systemctl status sshdA saída agora deve mostrar que o serviço está "inativo (morto)":
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: inactive (dead) since Wed 2023-10-25 10:15:00 UTC; 5s agoInicie o serviço novamente:
sudo systemctl start sshdVerifique se o serviço foi iniciado:
systemctl status sshdA saída deve mostrar que o serviço está "ativo (em execução)" novamente.
Reiniciando Serviços
Reiniciar um serviço é uma operação comum, especialmente após alterar sua configuração:
Para reiniciar o serviço SSH:
sudo systemctl restart sshdEste comando para e, em seguida, inicia o serviço.
Para verificar a reinicialização, verifique o status do serviço:
systemctl status sshdObserve a linha "Active" para ver quando o serviço foi iniciado pela última vez.
Criando um Arquivo de Referência para Comandos de Controle de Serviço
Vamos criar um arquivo de referência com os comandos que você aprendeu:
Crie um arquivo chamado
service_control.txtem seu diretório de projeto:echo "Comandos de Controle de Serviço:" > ~/project/service_control.txt echo "Iniciar um serviço: sudo systemctl start <nome_do_serviço>" >> ~/project/service_control.txt echo "Parar um serviço: sudo systemctl stop <nome_do_serviço>" >> ~/project/service_control.txt echo "Reiniciar um serviço: sudo systemctl restart <nome_do_serviço>" >> ~/project/service_control.txtVerifique o conteúdo do arquivo:
cat ~/project/service_control.txt
Nesta etapa, você aprendeu como controlar serviços, iniciando, parando e reiniciando-os. Essas operações são fundamentais para o gerenciamento e manutenção de serviços em sistemas Linux.
Gerenciando o Comportamento de Inicialização de Serviços: Habilitar e Desabilitar
Nesta etapa, você aprenderá como configurar se os serviços iniciam automaticamente quando o sistema inicializa. Isso é importante para garantir que os serviços necessários estejam disponíveis sem intervenção manual após uma reinicialização do sistema.
Compreendendo a Configuração de Inicialização do Serviço
Os serviços podem ser configurados para iniciar automaticamente na inicialização (habilitados) ou para exigir inicialização manual (desabilitados). Essa configuração é separada do estado de execução atual do serviço.
Verificando se um Serviço Está Habilitado
Para verificar se o serviço SSH está configurado para iniciar na inicialização:
systemctl is-enabled sshdA saída será "enabled" (inicia na inicialização) ou "disabled" (não inicia na inicialização).
Desabilitando um Serviço
Quando você desabilita um serviço, você o está configurando para não iniciar automaticamente na inicialização:
Desabilite o serviço SSH:
sudo systemctl disable sshdVocê deve ver uma mensagem indicando que o symlink foi removido:
Removed /etc/systemd/system/multi-user.target.wants/ssh.service.Verifique se o serviço agora está desabilitado:
systemctl is-enabled sshdA saída deve ser "disabled".
Observe que desabilitar um serviço não o interrompe se ele estiver em execução. Verifique o status atual:
systemctl status sshdEmbora o serviço agora esteja desabilitado para a próxima inicialização, ele ainda pode estar ativo.
Habilitando um Serviço
Quando você habilita um serviço, você o está configurando para iniciar automaticamente na inicialização:
Reabilite o serviço SSH:
sudo systemctl enable sshdVocê deve ver uma mensagem indicando que o symlink foi criado:
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.Verifique se o serviço agora está habilitado:
systemctl is-enabled sshdA saída deve ser "enabled".
Comandos Combinados
Você também pode combinar habilitar/desabilitar com iniciar/parar em um único comando:
Para desabilitar e parar um serviço em um comando:
sudo systemctl disable --now sshdPara habilitar e iniciar um serviço em um comando:
sudo systemctl enable --now sshd
Criando um Arquivo de Referência para a Configuração de Inicialização do Serviço
Vamos criar um arquivo de referência com os comandos que você aprendeu:
Crie um arquivo chamado
service_boot.txtem seu diretório de projeto:echo "Comandos de Configuração de Inicialização do Serviço:" > ~/project/service_boot.txt echo "Verificar se um serviço está habilitado: systemctl is-enabled <nome_do_serviço>" >> ~/project/service_boot.txt echo "Habilitar um serviço para iniciar na inicialização: sudo systemctl enable <nome_do_serviço>" >> ~/project/service_boot.txt echo "Desabilitar um serviço de iniciar na inicialização: sudo systemctl disable <nome_do_serviço>" >> ~/project/service_boot.txt echo "Habilitar e iniciar imediatamente um serviço: sudo systemctl enable --now <nome_do_serviço>" >> ~/project/service_boot.txt echo "Desabilitar e parar imediatamente um serviço: sudo systemctl disable --now <nome_do_serviço>" >> ~/project/service_boot.txtVerifique o conteúdo do arquivo:
cat ~/project/service_boot.txt
Nesta etapa, você aprendeu como gerenciar o comportamento de inicialização do serviço, habilitando e desabilitando serviços. Isso é crucial para configurar quais serviços iniciam automaticamente na inicialização do sistema, garantindo que os serviços necessários estejam disponíveis, enquanto os desnecessários não consomem recursos.
Resumo
Neste laboratório, você aprendeu os fundamentos do gerenciamento de serviços Linux usando o comando systemctl. Você praticou habilidades essenciais que todo administrador Linux deve conhecer:
Verificação do status do serviço: Você aprendeu como visualizar o estado atual dos serviços, o que é crucial para monitoramento e solução de problemas.
Controlando serviços: Você praticou a inicialização, parada e reinicialização de serviços, que são operações básicas necessárias para manutenção e alterações de configuração.
Gerenciando o comportamento de inicialização: Você aprendeu como habilitar e desabilitar serviços na inicialização do sistema, permitindo que você controle quais serviços são executados automaticamente após uma reinicialização.
Essas habilidades fornecem a base para um gerenciamento de serviços eficaz em ambientes Linux. À medida que você continua trabalhando com sistemas Linux, você descobrirá que esses comandos são essenciais para manter a estabilidade e o desempenho do sistema.
Lembre-se de que o gerenciamento adequado de serviços é fundamental para a segurança do sistema, otimização de recursos e para garantir que a funcionalidade necessária esteja disponível quando necessário. O conhecimento que você adquiriu neste laboratório servirá como um bloco de construção para tarefas de administração Linux mais avançadas.



