JanelasMacSoftwareConfiguraçõesSegurançaProdutividadeLinuxAndroidDesempenhoConfiguraçãoApple Tudo

Como gerenciar serviços com systemd no Fedora

Editado 4 meses atrás por ExtremeHow Equipe Editorial

FedoraSystemdServiçosGestãoLinha de comandoTerminalSoftwareAdministração de SistemasConfiguraçãoComputadores

Como gerenciar serviços com systemd no Fedora

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.

Introdução ao systemd

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.

Componentes do systemd

Antes de mergulharmos no uso prático do systemd, é útil entender seus principais componentes:

Compreendendo as unidades de serviço

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:

Gerenciando serviços com systemctl

O comando systemctl é usado para monitorar e controlar o systemd. Abaixo estão tarefas comuns e como você pode realizá-las usando systemctl:

Verificando o status do serviço

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.

Iniciando o serviço

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.

Parando o serviç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.

Reiniciando o serviço

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.

Habilitando e desabilitando serviços

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.

Usando recarregar daemon

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.

Criando unidades de serviço personalizadas

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:

Passo 1: Criar o arquivo de unidade

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

Passo 2: Definir permissões

Certifique-se de que o script ou programa chamado no ExecStart tenha as permissões adequadas:

chmod +x /usr/bin/custom-script.sh

Passo 3: Recarregar systemd

Após criar o novo arquivo de unidade, recarregue o systemd:

systemctl daemon-reload

Passo 4: Iniciar e habilitar o serviço

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.

Usando alvos do systemd

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.

Listando alvos disponíveis

Para descobrir os alvos disponíveis em seu sistema, use:

systemctl list-units --type=target

Mudando o nível de execução

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.

Compreendendo logs com journalctl

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.

Visualizando o log

Para visualizar os logs de um serviço específico, use:

journalctl -u my-service.service

Log em tempo real

Ao monitorar os logs em tempo real, use o seguinte flag:

journalctl -u my-service.service -f

Solucionando problemas comuns

Às vezes pode haver problemas na gestão suave dos serviços. Saber como solucionar pode ser inestimável:

Conclusã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


Comentários