.## 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.
- 1 2. Como exibir uma lista de serviços com systemctl
- 2 3. Gerenciamento básico de serviços com systemctl
- 3 4. Opções Úteis do systemctl e Técnicas Avançadas
- 4 5. Problemas Comuns e Solução de Problemas
- 5 6. Resumo
- 6 7. Perguntas Frequentes (FAQ)
- 6.1 Q1. Qual é a diferença entre systemctl e o comando service?
- 6.2 Q2. Qual é a diferença entre list-units e list-unit-files?
- 6.3 Q3. Serviços em estado estático podem ser iniciados?
- 6.4 Q4. Um serviço está mascarado e não pode ser iniciado. O que devo fazer?
- 6.5 Q5. Existe um método GUI para visualizar o status do serviço?
- 6.6 Q6. Onde devo colocar arquivos de unidade personalizados?
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:
| Field | Description |
|---|---|
| UNIT | Service name (e.g., ssh.service) |
| LOAD | Whether the unit file is loaded |
| ACTIVE | Service state (e.g., active, inactive, failed) |
| SUB | More detailed status (e.g., running, exited, dead) |
| DESCRIPTION | Service 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.
| STATE | Description |
|---|---|
| enabled | Automatically starts at boot |
| disabled | Does not start automatically |
| static | Cannot be enabled or disabled manually |
| masked | Explicitly 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-unitsexibe unidades atualmente carregadas, ou seja, serviços que estão em execução ou que foram usados recentemente.list-unit-filesexibe 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.


