Gerenciar um serviço ou grupo de serviços em um PC Linux moderno pode ser complicado, isto é, se você não souber o que está fazendo. Sorte para você, o Ubuntu Systemctl tem você coberto para gerenciar serviços em um PC Linux.
Neste tutorial, você aprenderá como gerenciar serviços Systemd no PC Ubuntu executando diferentes comandos systemctl
.
Pronto? Hora de começar!
Pré-requisitos
Este tutorial será uma demonstração prática, mas não requer ferramentas especiais, desde que você esteja no Ubuntu 16 ou em uma versão superior, você está pronto para começar. Este tutorial utiliza a versão Ubuntu 20.04.3 LTS para as demonstrações.
O que é o Ubuntu Systemctl?
Antes de executar comandos systemctl no Ubuntu, saiba o que é o Systemctl primeiro. Systemctl é uma utilidade de linha de comando para controlar e gerenciar systemd e serviços de sistema.
Em poucas palavras, o Systemctl é um painel de controle ou gerenciador de serviços para o sistema init systemd para inicializar componentes após a inicialização do kernel Linux. Systemctl é uma coleção de bibliotecas, daemons e utilitários que você pode usar para gerenciar serviços.
Para gerenciar serviços de forma eficaz, conheça os diferentes estados dos serviços, conforme segue:
- Habilitado – indica que um serviço está configurado para iniciar quando o sistema é inicializado.
- Desabilitado – indica que um serviço está configurado para não iniciar quando o sistema é inicializado.
- Ativo – indica que um serviço está atualmente em estado de execução.
- Inativo – indica que um serviço não está atualmente em execução, mas pode iniciar quando algum aplicativo tentar iniciar esse serviço.
Listando Todos os Serviços
Agora que você conhece os diferentes estados dos serviços, talvez queira ver uma lista de todos os serviços em seu PC Ubuntu. Listar todos os serviços fornece uma série de informações que o prepara para gerenciar os serviços.
Abra seu terminal e execute o comando abaixo para listar todas as unidades de serviço (list-units
) (ativos, em execução, saídos ou falhados) com o serviço definido como tipo de unidade (--type=service
).
Escolha qualquer um dos serviços da lista que você deseja gerenciar posteriormente neste tutorial e anote o nome da UNIDADE (por exemplo, apache2). Pressione a barra de espaço para rolar para baixo, ou pressione a tecla “Q” para sair do comando.
A propósito, aqui está um bom guia sobre Scripting de Shell do Linux.

Listagem de Serviços com Estado Específico
Em vez de listar todos os serviços, talvez você queira reduzir a lista de serviços. Se for o caso, adicionar o parâmetro --state
resolverá, pois filtra os serviços com o estado específico que você especificar.
Execute um dos comandos abaixo para listar todos os serviços ativos (--type=service --state=active
), tanto os em execução quanto os encerrados.

Da mesma forma, para listar apenas serviços encerrados ou em execução, altere o valor do estado de active
para running
ou exited
, conforme mostrado nos comandos abaixo:


Listagem de Serviços Habilitados
Além de listar serviços ativos, em execução e encerrados, você também pode listar serviços habilitados e desabilitados encadeando o comando grep
.
Execute um dos comandos abaixo para listar (list-unit-files
) serviços desabilitados
ou habilitados
(--type=service
).
Tenha em mente um serviço habilitado, conforme mostrado abaixo, pois você precisará dele mais tarde para desabilitar um serviço, mas este tutorial usa o acpid.service como exemplo. O acpid é um daemon extensível que suporta os eventos do Advanced Configuration and Power Interface (ACPI).

Listando Propriedades do Serviço
Além de listar os serviços, você pode querer verificar as propriedades de um serviço. Ter insights sobre as propriedades do serviço é útil para solução de problemas, parâmetros do processo ou comportamento de reinicialização.
Execute o comando abaixo para mostrar
as propriedades de um serviço (acpid.service
) em formato chave=valor.

Agora, se você estiver procurando apenas por uma propriedade específica do serviço, pode passar a opção -p
com o nome da propriedade.
Execute o comando abaixo para mostrar
a propriedade MainPID
de um serviço (acpid.service
).

Gerenciando um Serviço Específico
Com os conceitos básicos de listagem de serviços cobertos, é hora de gerenciar um serviço específico (único) executando os comandos systemctl stop
e start
.
o serviço apache (apache2) é utilizado nas seguintes demonstrações, mas você pode gerenciar livremente o serviço que você anotou na seção “listando todos os serviços”. no entanto, antes de parar ou iniciar um serviço, é necessário verificar o status do serviço.
execute o comando abaixo em um terminal para visualizar as informações detalhadas do serviço apache2
, como o seu status
.
abaixo, você pode ver que o serviço apache2 está ativo e em execução.

não é necessário inserir a senha do sudo para visualizar o status do serviço, pois você não está alterando o estado do serviço. mas se você iniciar, parar ou reiniciar um serviço, será necessário anteceder o comando sudo e inserir a senha do sudo.
parando um serviço
talvez você queira parar um serviço que foi deixado em execução em segundo plano. nesse caso, o comando systemctl stop
é o que você precisa. execute o comando systemctl
abaixo para parar o serviço apache2
.
se preferir parar vários serviços simultaneamente, especifique cada serviço separado por espaço, assim:
sudo systemctl stop sshd apache2
. neste comando, você irá parar tanto os serviços sshd quanto apache2 de uma só vez.
agora execute o comando systemctl status
como fez anteriormente para verificar se o serviço apache2 foi interrompido.
você pode ver abaixo que o status do serviço apache2 mudou para inativo (morto), o que indica que o serviço foi parado.

iniciando um serviço
Agora, como você inicia um serviço se perceber que ele não está rodando de jeito nenhum? Você executa um comando semelhante ao de parar o serviço, que é o comando systemctl start
. Execute o comando abaixo para iniciar
o serviço apache2
.
Assim como parar vários serviços, você também pode iniciar vários serviços em uma única linha de comando. Substitua o comando
stop
pelo comandostart
assim:sudo systemctl start sshd apache2
Agora execute o comando systemctl status
mais uma vez para verificar se o serviço apache2
está rodando.
Se você ver o status ativo (running), como mostrado abaixo, então está tudo certo, pois o serviço está funcionando novamente.

Se você preferir reiniciar o serviço imediatamente sem precisar pará-lo primeiro. Se for o caso, opte pelo comando
systemctl restart
em vez disso, assim:sudo systemctl restart apache2
Habilitando ou Desabilitando um Serviço
Talvez haja um serviço específico que você prefira iniciar ou impedir de iniciar na inicialização do sistema. Se for o caso, executar o comando systemctl
enable
ou disable
é a melhor abordagem.
O subcomando enable
permite configurar as configurações de inicialização padrão no seu sistema, enquanto o subcomando disable
impede que um serviço seja executado na inicialização do sistema.
Execute o comando systemctl
abaixo para desativar
o serviço (acpid.service
) que você observou na seção “Listando Serviços Ativados”. Digite sua senha de sudo para autorizar a execução do comando.

Agora, como o serviço acpid.service suporta a configuração direcionada pelo sistema operacional e Gerenciamento de Energia (OSPM), você precisa reativá-lo. O comando para ativar o serviço é semelhante ao de desativar um serviço.
Execute o comando systemctl
abaixo para ativar
o acpid.service
. Este comando registra o serviço de volta às configurações padrão de inicialização em seu sistema.

Conclusão
Neste tutorial, você percebeu quão rapidamente pode parar, iniciar ou reiniciar serviços executando comandos systemctl
no Ubuntu. Você também aprendeu que o comando systemctl
permite gerenciar não apenas um, mas vários serviços simultaneamente.
Com esse conhecimento recém-adquirido, que tal automatizar o controle de serviços em seu sistema Ubuntu?