Gerenciar um serviço ou grupo de serviços em um PC Linux moderno pode ser complicado, especialmente se você não souber o que está fazendo. Felizmente para você, o Ubuntu Systemctl tem tudo o que você precisa para gerenciar serviços em um PC Linux.
Neste tutorial, você aprenderá como gerenciar serviços Systemd no PC Ubuntu executando diferentes comandos systemctl
.
Preparado? Vamos lá!
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, está pronto para começar. Este tutorial utiliza a versão 20.04.3 LTS do Ubuntu para as demonstrações.
O que é o Ubuntu Systemctl?
Antes de executar comandos systemctl no Ubuntu, é importante entender o que é o Systemctl. Systemctl é uma utilidade de linha de comando para controlar e gerenciar systemd e serviços do sistema.
Em resumo, o Systemctl é um painel de controle ou gerenciador de serviços para o sistema init systemd, utilizado para inicializar componentes após a inicialização do kernel Linux. O Systemctl é um conjunto de bibliotecas, daemons e utilitários que você pode utilizar para gerenciar serviços.
Para gerenciar efetivamente os serviços, é importante conhecer os diferentes estados dos serviços, conforme listado abaixo:
- Ativado – indica que um serviço está configurado para iniciar quando o sistema é inicializado.
- Desativado – 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 tenta 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 várias informações que o preparam para gerenciar serviços.
Abra seu terminal e execute o comando abaixo para listar todas as unidades de serviço (list-units
) (ativas, em execução, encerradas ou com falha) com o serviço definido como tipo de unidade (--type=service
).
Escolha qualquer serviço 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 Linux Shell Scripting.

Listagem de Serviços com Estado Específico
Em vez de listar todos os serviços, talvez queira reduzir a lista de serviços. Se for o caso, adicionar o parâmetro --state
fará o truque, 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 em execução quanto 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
, como 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 por meio do comando grep
.
Execute um dos comandos abaixo para listar (list-unit-files
) serviços desabilitados
ou habilitados
(--type=service
).
Tome nota de um serviço habilitado, conforme mostrado abaixo, pois você precisará dele mais tarde para desabilitar um serviço, mas este tutorial utiliza o serviço acpid.service como exemplo. O acpid é um daemon extensível que suporta eventos do Advanced Configuration and Power Interface (ACPI).

Listando Propriedades do Serviço
Além de listar serviços, você pode querer verificar as propriedades de um serviço. Ter insights sobre as propriedades do serviço é útil para solucionar problemas, entender 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 por uma propriedade específica do serviço, pode usar 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 explicados, é hora de gerenciar um serviço específico (individual) executando os comandos systemctl stop
e start
.
O serviço Apache (apache2) é usado para as seguintes demonstrações, mas você pode gerenciar livremente o serviço que você observou na seção “Listando Todos os Serviços”. No entanto, antes de parar ou iniciar um serviço, você precisa verificar o status do serviço.
Execute o comando abaixo em um terminal para visualizar as informações detalhadas do serviço apache2
, como seu status
.
Abaixo, você pode ver que o serviço apache2 está ativo e em execução.

Não é necessário digitar 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, você precisa adicionar o comando sudo e digitar 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 você preferir parar vários serviços simultaneamente, especifique cada serviço separado por espaço, assim:
sudo systemctl stop sshd apache2
. Nesse comando, você vai parar os serviços sshd e apache2 de uma vez.
Agora execute o comando systemctl status
como você fez anteriormente para verificar se o serviço apache2 parou.
Você pode ver abaixo que o status do serviço apache2 mudou para inativo (inativo), o que indica que o serviço parou.

Iniciando um Serviço
Agora, como você inicia um serviço se percebeu 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 startar
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 (rodando), como mostrado abaixo, então está tudo certo, pois o serviço está de volta aos negócios.

Se você prefere 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 evitar iniciar na inicialização do sistema. Se for o caso, executar o comando systemctl
enable
ou disable
é a melhor abordagem.
O subcomando enable
permite que você configure as configurações padrão de inicializaçã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 “Listagem de Serviços Ativados”. Digite sua senha de sudo para autorizar a execução do comando.

Agora, como o serviço acpid.service
suporta configuração direcionada pelo SO e Gerenciamento de Energia (OSPM), você precisa reativá-lo. O comando para habilitar o serviço é semelhante ao de desabilitação de 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 como é rápido 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 novo conhecimento, por que não automatizar o controle de serviços em seu sistema Ubuntu?