Editado 2 Semanas atrás por ExtremeHow Equipe Editorial
InicializaçãoServiçosLinha de comandoSystemdGestãoControleScripts de InicializaçãoSysAdminConfiguraçãoMonitoramento
Tradução atualizada 6 dias atrás
Em qualquer sistema baseado em Linux, os serviços são um aspecto integral. Esses serviços são processos em segundo plano que rodam continuamente para contribuir com várias funcionalidades, como redes, hospedagem de banco de dados, servidores web e muito mais. Gerenciar esses serviços de forma eficiente é uma parte importante da administração do sistema. Este guia explicará como gerenciar serviços usando systemctl
, que é uma ferramenta de linha de comando para monitorar e controlar o gerente de sistemas e serviços systemd.
Antes de mergulhar em systemctl
, é importante entender o que é o systemd. Systemd é um gerente de sistemas e serviços para Linux que fornece capacidades de paralelização, utiliza soquetes e ativação D-Bus para iniciar serviços, fornece inicialização de daemon sob demanda, mantém o controle de processos usando grupos de controle do Linux e mantém pontos de montagem e automontagem.
systemctl
é uma ferramenta de linha de comando usada para gerenciar o systemd. Ele fornece várias opções para controlar e gerenciar serviços e unidades. Unidades são recursos que o systemd sabe como gerenciar; estas geralmente incluem serviços, mas também outros tipos, como pontos de montagem e soquetes.
Antes de gerenciar serviços, é bom saber como listá-los para entender os serviços que estão em execução atualmente. Os seguintes comandos ajudarão:
systemctl list-units --type service --all
Este comando lista todos os serviços e mostra o status de cada um. A saída mostrará se cada serviço está ativo, inativo ou falhou.
Para iniciar um serviço que não está atualmente em execução, use o comando start
da seguinte maneira:
sudo systemctl start <service-name>
Por exemplo, para iniciar o servidor HTTP Apache, você executaria:
sudo systemctl start httpd
Se você precisar parar um serviço, o comando stop
é usado. Isso é útil em vários cenários, como ao realizar manutenção ou atualizações:
sudo systemctl stop <service-name>
Exemplo:
sudo systemctl stop httpd
Isso para a execução do Servidor HTTP Apache.
Às vezes, em vez de parar e reiniciar um serviço, pode ser desejável reiniciá-lo diretamente. Isso pode ser feito com o comando restart
:
sudo systemctl restart <service-name>
Exemplo:
sudo systemctl restart httpd
Isso reinicia o servidor HTTP Apache. Isso é especialmente útil quando você fez alterações no arquivo de configuração e deseja que o serviço recarregue essas alterações.
Para verificar se um serviço está em execução, você pode usar o comando status
. Ao fazer isso, você obtém informações sobre o status atual do serviço, quaisquer mensagens de erro e saída de log:
systemctl status <service-name>
Por exemplo:
systemctl status httpd
Isso exibirá informações detalhadas sobre o serviço httpd, mostrando se está ativo, habilitado, ou se teve algum problema durante sua última inicialização.
Habilitar um serviço garante que ele inicie automaticamente na inicialização. Por outro lado, desabilitar um serviço significa que ele não será iniciado automaticamente:
sudo systemctl enable <service-name>
sudo systemctl disable <service-name>
Por exemplo, para habilitar o Servidor HTTP Apache:
sudo systemctl enable httpd
Da mesma forma, para evitar que ele inicie automaticamente:
sudo systemctl disable httpd
Habilitar é particularmente benéfico para serviços que você deseja que estejam sempre em execução quando seu sistema estiver ligado, como servidores web ou de banco de dados.
Mascarar um serviço é uma forma poderosa de garantir que um serviço não execute de maneira alguma. Uma vez que um serviço é mascarado, ele não pode ser iniciado de forma alguma até ser desmascarado:
sudo systemctl mask <service-name>
sudo systemctl unmask <service-name>
Exemplo:
sudo systemctl mask httpd
Este comando garante que, mesmo que você tente iniciar o servidor HTTP Apache, ele não começará. Para permitir que ele execute novamente, desmascare-o:
sudo systemctl unmask httpd
Se você fizer alterações nos arquivos de configuração relacionados ao systemd, deve recarregar a configuração do gerenciador systemd usando o seguinte comando:
sudo systemctl daemon-reload
Este comando é especialmente importante quando você adiciona novos arquivos de configuração ou faz alterações em arquivos existentes nos diretórios /etc/systemd/system
ou /lib/systemd/system
.
Às vezes, pode ser necessário editar arquivos de unidades de serviço para personalizar o comportamento do serviço. Com o systemctl, você pode fazer isso sem acessar diretamente os arquivos de serviço:
sudo systemctl edit <service-name>
Isso abre o arquivo de unidade no seu editor de texto padrão. Assim que salvar suas alterações e fechar o editor, o systemctl criará uma substituição. Não se esqueça de recarregar a configuração do gerenciador systemd depois.
Gerenciar serviços usando systemctl
é uma habilidade essencial para qualquer administrador de sistemas Linux. Esta poderosa ferramenta fornece comandos simples para controlar os serviços em execução no sistema. Seja iniciando, parando, habilitando ou desabilitando serviços, o systemctl
simplifica esses processos, aumentando a confiabilidade e o desempenho do sistema.
Também é importante entender os níveis de gerenciamento de serviços, desde operações simples, como iniciar e parar, até operações complexas, como mascarar ou editar arquivos de unidade. À medida que você se torna mais confortável usando o systemctl, será capaz de gerenciar serviços em um sistema Linux de maneira mais eficaz, o que contribuirá para a estabilidade e eficiência geral do sistema.
Se você encontrar algo errado com o conteúdo do artigo, você pode