Lista de Serviços do systemctl Explicada: Como Visualizar, Gerenciar e Solucionar Problemas de Serviços Linux

.## 1. Introdução

Ao usar o Linux, há muitas situações em que você deseja verificar o status de serviços ou visualizar uma lista de processos em execução. Nesses casos, o comando systemctl é extremamente útil.

Esse comando funciona com systemd, o sistema de inicialização e gerenciador de serviços usado nas distribuições Linux modernas. Ele fornece uma ampla gama de funções, incluindo verificação do status de serviços (unidades), iniciar, parar, reiniciar serviços e exibir listas de serviços.

Do ponto de vista de uma “lista de serviços do systemctl”, você pode não apenas ver os serviços atualmente ativos, mas também os desativados e aqueles configurados para inicialização automática, permitindo entender a configuração geral do sistema sob múltiplos ângulos.

Este capítulo explica brevemente o que é o systemctl e descreve o que você aprenderá neste artigo.

目次

O que é systemctl?

systemctl é a ferramenta padrão para controlar e inspecionar várias “unidades”, como serviços, alvos (targets) e pontos de montagem, em distribuições Linux baseadas em systemd.

Por exemplo, ele é usado para iniciar ou parar serviços como Apache (httpd) e SSH, bem como para exibir seus status em forma de lista.

A relação entre systemd e systemctl

systemd é o mecanismo central responsável pelos processos de inicialização do Linux e pela gestão de serviços, substituindo sistemas mais antigos como SysVinit e Upstart. A ferramenta de linha de comando usada para interagir com o systemd é systemctl.

Em outras palavras, se o systemd é o centro de comando, o systemctl atua como o operador que emite instruções.

O que você aprenderá neste artigo

Este artigo responde às seguintes perguntas:

  • Como você pode visualizar uma lista de serviços em execução atualmente?
  • Como exibir todos os serviços, incluindo os inativos?
  • Como verificar se um serviço inicia automaticamente na inicialização?
  • Como interpretar a saída das listas de serviços?

Para garantir clareza para iniciantes em Linux, exemplos de comandos e explicações da saída são fornecidos em detalhes.

2. Como exibir uma lista de serviços com systemctl

Na administração de sistemas Linux, compreender rapidamente a lista de serviços é extremamente importante. Usando o comando systemctl, você pode verificar facilmente serviços ativos, serviços inativos e as configurações de inicialização.

Esta seção explica os métodos de listagem de serviços a partir das três perspectivas a seguir:

  • Lista de serviços ativos
  • Lista de todos os serviços (incluindo os inativos)
  • Lista de arquivos de unidades de serviço (incluindo as configurações de inicialização)

2.1 Exibindo uma lista de serviços atualmente ativos

Para verificar os serviços que estão em execução no momento, use o comando a seguir:

systemctl list-units --type=service

Esse comando exibe uma lista de serviços ativos. A saída inclui os seguintes campos:

FieldDescription
UNITService name (e.g., ssh.service)
LOADWhether the unit file is loaded
ACTIVEService state (e.g., active, inactive, failed)
SUBMore detailed status (e.g., running, exited, dead)
DESCRIPTIONService description

Essas informações permitem, por exemplo, determinar se o nginx está em execução ou quais serviços estão atualmente ativos.

2.2 Exibindo todos os serviços, incluindo os inativos

Por padrão, list-units mostra apenas serviços ativos. Para incluir serviços inativos, adicione a opção --all.

systemctl list-units --type=service --all

Isso exibe serviços inativos e aqueles que nunca foram iniciados.

Você pode ainda filtrar os resultados pelo estado do serviço usando a opção --state=:

systemctl list-units --type=service --state=inactive

Isso é útil quando você deseja visualizar apenas serviços parados.

2.3 Visualizando uma lista de arquivos de unidades de serviço

Para verificar quais serviços estão habilitados ou desabilitados na inicialização, use o comando a seguir:

systemctl list-unit-files --type=service

Esse comando exibe todos os arquivos de unidades de serviço juntamente com seus estados de habilitado ou desabilitado.

STATEDescription
enabledAutomatically starts at boot
disabledDoes not start automatically
staticCannot be enabled or disabled manually
maskedExplicitly disabled and cannot be started

Essa lista ajuda a entender visualmente quais serviços iniciam na inicialização e a identificar serviços que foram mascarados por engano.

3. Gerenciamento básico de serviços com systemctl

O comando systemctl permite iniciar, parar, reiniciar serviços e configurar o comportamento de inicialização.

3.1 Iniciando um serviço

sudo systemctl start service-name

Exemplo:

sudo systemctl start httpd.service

3.2 Parando um Serviço

sudo systemctl stop service-name

Exemplo:

sudo systemctl stop sshd.service

3.3 Reiniciando um Serviço

sudo systemctl restart service-name

Exemplo:

sudo systemctl restart nginx.service

3.4 Verificando o Status do Serviço

systemctl status service-name

Exemplo:

systemctl status mysql.service

3.5 Habilitando Inicialização Automática

sudo systemctl enable service-name

Exemplo:

sudo systemctl enable docker.service

3.6 Desabilitando Inicialização Automática

sudo systemctl disable service-name

Exemplo:

sudo systemctl disable cups.service

3.7 Verificando o Status de Inicialização

systemctl is-enabled service-name
enabled

4. Opções Úteis do systemctl e Técnicas Avançadas

4.1 Listando Dependências de Serviços

systemctl list-dependencies service-name

4.2 Visualizando o Conteúdo do Arquivo de Unidade

systemctl cat service-name

4.3 Recarregando Arquivos de Unidade

sudo systemctl daemon-reexec
sudo systemctl daemon-reload

4.4 Visualizando Logs de Serviço

journalctl -u service-name

5. Problemas Comuns e Solução de Problemas

5.1 Quando um Serviço Falha ao Iniciar

systemctl status service-name
journalctl -xe

5.2 Entendendo Mensagens de Erro na Saída de status

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code)

5.3 Serviços que Param Imediatamente Após Iniciar

  • Erros de configuração
  • Conflitos de porta
  • Arquivos ou diretórios ausentes
  • Permissões insuficientes

5.4 Quando um Serviço está Mascarado

sudo systemctl unmask service-name

6. Resumo

A gestão de serviços é uma parte essencial das operações de sistemas Linux, e o systemctl desempenha um papel central no controle e compreensão dos serviços do sistema.

7. Perguntas Frequentes (FAQ)

Esta seção responde a perguntas comuns sobre o systemctl e a gestão de serviços.

Q1. Qual é a diferença entre systemctl e o comando service?

A1.
systemctl é um comando de gerenciamento de serviços projetado para sistemas baseados em systemd e é a ferramenta padrão usada pela maioria das distribuições Linux modernas, como Ubuntu, CentOS e Fedora.
Em contraste, o comando service era usado em sistemas mais antigos baseados em SysVinit. Embora ainda possa existir por razões de compatibilidade, o uso do systemctl é fortemente recomendado em ambientes systemd.

Q2. Qual é a diferença entre list-units e list-unit-files?

A2.

  • list-units exibe unidades atualmente carregadas, ou seja, serviços que estão em execução ou que foram usados recentemente.
  • list-unit-files exibe todos os arquivos de unidade e seu status de habilitação (habilitado, desabilitado, etc.). Em resumo, um mostra o que está ativo no momento, enquanto o outro mostra como os serviços estão configurados.

Q3. Serviços em estado estático podem ser iniciados?

A3.
Sim, serviços em estado static podem ser iniciados manualmente usando start. No entanto, eles não podem ser habilitados para inicialização automática na inicialização.
Isso ocorre porque serviços estáticos são projetados para serem iniciados como dependências de outras unidades.

Q4. Um serviço está mascarado e não pode ser iniciado. O que devo fazer?

A4.
Um serviço masked está completamente desabilitado e não pode ser iniciado. Para resolver isso, desmascare o serviço usando o seguinte comando:

sudo systemctl unmask service-name

Depois de desmascarar, você pode iniciar o serviço normalmente.

Q5. Existe um método GUI para visualizar o status do serviço?

A5.
Dependendo da distribuição, ferramentas como gnome-system-monitor, KSysGuard ou Cockpit permitem visualizar o status dos serviços através de uma interface gráfica.
Entretanto, para operações avançadas, como habilitar ou desabilitar serviços na inicialização, systemctl continua sendo o método mais confiável.

Q6. Onde devo colocar arquivos de unidade personalizados?

A6.
Arquivos de unidade personalizados são normalmente colocados em /etc/systemd/system/. Após editar ou adicionar um arquivo de unidade, sempre execute o seguinte comando:

sudo systemctl daemon-reload

Você pode então gerenciar o serviço normalmente usando start ou enable.