---
# System prepended metadata

title: Introdução ao Systemd
tags: [' systemctl', Linux, ' Systemd']

---

---
tags: Linux, Systemd, systemctl
---
# Introdução ao Systemd

![](https://i.imgur.com/nz25REw.png)

Systemd é um sistema *init* usado em sistemas operacionais baseados em Linux que foi desenvolvido com o objetivo de melhorar o desempenho, segurança e facilidade de gerenciamento dos serviços do sistema operacional. 

O *"D"* em systemd significa "system daemon" (em português, "daemon do sistema"). Um daemon é um processo que é executado em segundo plano, sem interação direta do usuário, e que geralmente executa uma determinada tarefa ou serviço em um sistema operacional. No contexto do systemd, os daemons do sistema são responsáveis por inicializar, gerenciar e monitorar serviços e processos em segundo plano que são executados em um sistema Linux. 

> Cabe destacar também que um dos principais objetivos do systemd é a unificação e padronização de configurações básicas e comportamentos de serviços do Sistema Operacional Linux entre as diversas distribuições existentes no mercado.  

Assim, O systemd é um conjunto de softwares que fornecem blocos de construção fundamentais para um sistema operacional Linux. Ele é composto por vários componentes de controle, como o systemd-journald, que gerencia o registro do sistema e o systemd-networkd, que gerencia a configuração de rede e outros daemons que abordaremos neste artigo. Em resumo, Systemd é uma ferramenta muito poderosa que pode ser usada para gerenciar desde a inicialização do sistema, serviços em segundo plano, pontos de montagem de sistemas de arquivos, processos e muito mais, vejamos...

## Systemctl básico
O comando principal para gerenciar serviços com systemd é o systemctl. Ele permite ao usuário controlar serviços individuais, ver informações sobre o status dos serviços, verificar o log de serviços, iniciar ou parar serviços, entre outras coisas. Aqui estão alguns exemplos práticos de como o systemd/systemctl podem ser usados no gerenciamento de um sistema Linux:

#### Iniciando e parando serviços:

```
# Iniciar o serviço Apache
sudo systemctl start apache2

# Parar o serviço Apache
sudo systemctl stop apache2
```

#### Habilitando e desabilitando serviços na inicialização do sistema:

```
# Habilitar o serviço Apache na inicialização do sistema
sudo systemctl enable apache2

# Desabilitar o serviço Apache na inicialização do sistema
sudo systemctl disable apache2
```

#### Verificando o status do serviço:
```
# Verificar o status do serviço Apache
sudo systemctl status apache2
```

#### Reiniciando serviços:

```
# Reiniciar o serviço Apache
sudo systemctl restart apache2
```

#### Recarregando as configurações de um serviço sem reiniciá-lo:
```
# Recarregar as configurações do serviço Apache
sudo systemctl reload apache2
```

## Exemplos avançados

Além do gerenciamento de serviços, por meio do systemctl, o systemd também oferece recursos de gerenciamento de processos avançados, como cgroups, que permite limitar e monitorar recursos de CPU, memória, E/S e outros de processos individuais ou grupos de processos. Ele também pode gerenciar pontos de montagem de sistema de arquivos, unidades de tempo e muito mais. 

#### Gerenciando processos usando cgroups:

```
# Listar todos os grupos de processos atuais
sudo systemd-cgls

# Monitorar a utilização da CPU de um grupo de processos
sudo systemctl status user-1000.slice

# Limitar a quantidade de CPU que um processo pode usar
sudo systemctl set-property --runtime -- user.slice CPUQuota=50%

# Limitar a quantidade de memória que um grupo de processos pode usar
sudo systemctl set-property --runtime -- user.slice MemoryHigh=500M

```

#### Gerenciando pontos de montagem do sistema de arquivos:
```
# Montar um sistema de arquivos
sudo systemctl start mnt-hd1.mount

# Desmontar um sistema de arquivos:
sudo systemctl stop mnt-hd1.mount
```

#### Gerenciando a inicialização do sistema:
```
# Listar os alvos de inicialização do sistema disponíveis
sudo systemctl list-units --type target

# Mudar o alvo de inicialização atual do sistema
sudo systemctl isolate multi-user.target

# Mostrar a unidade de inicialização padrão atual do sistema
sudo systemctl get-default

# Configurar uma nova unidade de inicialização padrão para o sistema
sudo systemctl set-default graphical.target

```

Esses são apenas alguns exemplos do que o systemd/systemctl podem fazer. Mas não é só isso, como dito anteriormente, o systemd fornece um conjunto de ferramentas de gerenciamento do sistema (que trataremos em detalhes nos próximos artigos), muitas das quais têm um nome terminado em *ctl*, como journalctl e timedatectl. 

Essas ferramentas ou *componentes de controle (ctrls)* são todas parte do systemd e são projetadas não só para facilitar a administração do sistema, mas também a solução de problemas.

### Principais Componentes

#### systemctl 
Como visto, é usado para controlar e gerenciar serviços do sistema, como iniciar e parar serviços, habilitar ou desabilitar serviços na inicialização do sistema e verificar o status dos serviços.

#### timedatectl 
É usado para gerenciar as configurações de data e hora do sistema, incluindo o fuso horário, data e hora.

#### hostnamectl 
É usado para gerenciar as configurações de nome de host do sistema, incluindo o nome de host, o nome de domínio e outras informações de rede.

#### loginctl 
É usado para gerenciar sessões de usuário e informações de login, incluindo o controle de sessões ativas, o bloqueio de contas de usuário e a alteração de configurações de login.

## Conclusão
O systemd é um sistema de gerenciamento de serviços e processos moderno e eficiente que substituiu o antigo sistema init em distribuições Linux. Ele fornece uma série de recursos, como inicialização paralela de serviços e controle de recursos avançados que torman a administração de sistemas operacionais Linux mais simples.

Cada componente de controle possui seus próprios recursos e opções de linha de comando, então é uma boa ideia ler a documentação correspondente para aprender como usá-las de forma eficaz. Embora possa haver alguma curva de aprendizado na adoção do systemd, a maioria dos usuários e administradores de sistemas Linux achará que a transição ou imersão vale a pena, já que o systemd torna a administração do sistema mais fácil e mais eficiente. 

## Próximas abordagens
No próximo artigo desta série, trataremos em detalhes a utilização de outros *daemons* de controle e mais recursos do systemd como o systemd-analyze, usado para analisar o desempenho do sistema, incluindo o tempo de inicialização do sistema operacional e o tempo de inicialização dos serviços.

Até lá.