Editado 4 meses atrás por ExtremeHow Equipe Editorial
FedoraSystemdServiçosGestãoLinha de comandoTerminalSoftwareAdministração de SistemasConfiguraçãoComputadores
Tradução atualizada 4 meses atrás
Gerenciar serviços em distribuições modernas do Linux é importante para administradores de sistema e qualquer usuário que precisa manter controle sobre os serviços em execução em uma máquina. O Fedora, uma popular distribuição Linux, usa o systemd como seu gerenciador de sistema e serviços. Este artigo explica como os serviços podem ser gerenciados de forma eficaz usando o systemd no Fedora. Cobriremos tópicos como iniciar, parar, habilitar, desabilitar e verificar o status dos serviços, além de criar unidades de serviço personalizadas. Quer você seja novo no Fedora ou em sistemas Linux em geral, ou um usuário experiente que precise de uma revisão, este guia abrangente é útil para todos.
Systemd é uma ferramenta que fornece um gerenciador de sistema e serviços projetado para substituir os tradicionais System V
(sysv
) e BSD init
. Ele oferece inicialização sob demanda de daemons, monitoramento de serviços, suporte a snapshots e mais. Nicer depende de serviços. O núcleo do systemd é gerenciado por meio do comando systemctl
, que é responsável por verificar e controlar o estado do systemd gerenciador de sistema e serviços.
Antes de mergulharmos no uso prático do systemd, é útil entender seus principais componentes:
As unidades de serviço são o tipo mais comum de unidade no systemd. Essas unidades contêm configurações que definem o que o serviço é, como ele deve ser iniciado ou parado, de que depende e outros comportamentos específicos.
Um arquivo de unidade de serviço geralmente está localizado em /etc/systemd/system
ou /usr/lib/systemd/system
e possui a seguinte sintaxe:
[Unit]
Description=My Sample Service
[Service]
ExecStart=/usr/bin/my-service
ExecStop=/usr/bin/my-service-stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
Cada arquivo de serviço normalmente contém as seguintes seções:
O comando systemctl
é usado para monitorar e controlar o systemd. Abaixo estão tarefas comuns e como você pode realizá-las usando systemctl
:
Para verificar o status de um serviço, use:
systemctl status my-service.service
Este comando fornecerá informações sobre o status do serviço, logs recentes e mais.
Você pode usar o seguinte para iniciar o serviço:
systemctl start my-service.service
Iniciar um serviço manualmente não significa que ele iniciará automaticamente na inicialização.
O seguinte comando é usado para parar um serviço:
systemctl stop my-service.service
Este comando para o serviço até que seja reiniciado manualmente ou que o sistema seja reiniciado.
Para reiniciar um serviço, use:
systemctl restart my-service.service
Esta operação para o serviço (se ele estiver em execução) e, em seguida, o inicia novamente.
Para iniciar um serviço automaticamente na inicialização do sistema, habilite-o da seguinte forma:
systemctl enable my-service.service
Por outro lado, para desabilitar um serviço para que ele não inicie automaticamente, use:
systemctl disable my-service.service
Habilitar um serviço cria um link simbólico do arquivo de unidade do serviço para a configuração de inicialização do sistema.
Se você modificar um arquivo de unidade ou configuração na árvore do systemd, muitas vezes é necessário recarregar o systemd:
systemctl daemon-reload
Este comando informa ao systemd para verificar novos ou modificados arquivos de unidade.
Criar um serviço personalizado permite que você execute seus próprios aplicativos como serviços gerenciados. Aqui está um guia simples passo a passo para criá-lo:
Abra um editor de texto e crie um novo arquivo de unidade de serviço no diretório /etc/systemd/system/
:
sudo nano /etc/systemd/system/my-custom-service.service
Preencha-o com a definição de serviço necessária:
[Unit]
Description=Custom Service Example
[Service]
ExecStart=/usr/bin/custom-script.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Certifique-se de que o script ou programa chamado no ExecStart
tenha as permissões adequadas:
chmod +x /usr/bin/custom-script.sh
Após criar o novo arquivo de unidade, recarregue o systemd:
systemctl daemon-reload
Agora inicie e habilite seu serviço personalizado:
systemctl start my-custom-service.service
systemctl enable my-custom-service.service
Seu serviço personalizado agora deve ser gerenciado como qualquer outro serviço do sistema.
Os pontos finais de alvo são configurações que permitem abstrair o conceito de níveis de execução em sistemas init tradicionais. Eles ajudam a gerenciar dependências entre serviços e outras unidades, fornecendo uma maneira de agrupar múltiplos serviços e unidades.
Para descobrir os alvos disponíveis em seu sistema, use:
systemctl list-units --type=target
Para mudar o alvo ou nível de execução, use:
systemctl isolate multi-user.target
Este comando é equivalente a mudar o nível de execução para o modo multiusuário.
O systemd vem com uma ferramenta de jornal integrada conhecida como journalctl
. Esta ferramenta de gerenciamento de logs consolida os logs de todos os serviços geridos pelo systemd em um repositório central.
Para visualizar os logs de um serviço específico, use:
journalctl -u my-service.service
Ao monitorar os logs em tempo real, use o seguinte flag:
journalctl -u my-service.service -f
Às vezes pode haver problemas na gestão suave dos serviços. Saber como solucionar pode ser inestimável:
journalctl
para identificar mensagens de erro específicas.systemctl list-dependencies
para ver as dependências de um serviço.
O gerenciamento eficiente de serviços é fundamental para a administração de sistemas no Fedora e em outras distribuições Linux que utilizam o systemd. Este guia mostrou como gerenciar vários aspectos dos serviços usando systemctl, desde executar tarefas básicas como iniciar e parar serviços até criar unidades de serviço personalizadas e lidar com logs com journalctl. Com essas habilidades, você pode garantir que seus sistemas funcionem de maneira suave e eficiente, automatizar tarefas e gerenciar serviços do sistema de forma eficaz.
Lembre-se de que no mundo Linux, qualquer ação que você realize em um sistema pode exigir privilégios de root. Certifique-se de ter as permissões adequadas e sempre faça backup de arquivos importantes antes de fazer alterações em configurações críticas do sistema. Compreender o systemd e as ferramentas que ele fornece é inestimável para o gerenciamento eficaz de serviços Linux.
Se você encontrar algo errado com o conteúdo do artigo, você pode