Entenda como funciona o Systemd no Linux para iniciar ou parar serviços atrvés do comando systemctl

Antes de abordar o systemd, vamos falar um pouco da motivação para os programadores desenvolverem o systemd. Para isso é preciso entender as limitações que o systemV tem.

Desvantanges do SystemV

Embora o System V init Daemon seja um sistema robusto e utilizado no Kernel 2.4, ele tem sérias desvantagens, tais como:

  • Monitoramento dos serviços (daemon) em execução é limitado, gerando processos zombies;
  • O reinício de serviços que pararam de funcionar é problemático;
  • Paralelismo é complicado.
  • Systemd

Devido a várias limitações do init, outro sistema especial de controle dos processos de boot e gerência da execução dos programas foi criado e denominado systemd.

Novidades do systemd

Este novo sistema já é amplamente utilizado nas distribuições mais conhecidas, especialmente nas versões de Kernel superiores a 2.6. Sua principal vantagem é a carga do sistema de forma mais rápida, executando os serviços e processos em paralelo. Isso foi possível com a chegada dos novos processadores dotados de múltiplos núcleos, que permitem a execução de diversas threads em paralelo.

Como novidades e vantagens do systemd, podemos citar:

  • Ativação via socket e bus (executa os serviços sob demanda);
  • Melhor paralelização dos processos;
  • Uso de cgroups (control groups – grupos de controle) ao invés de PIDS;
  • Suporta criação de imagens de estado de memória para salvar e restaurar estados de execução.
  • O sistema de controle de grupos permite que o systemd supervisione os processos, de forma a garantir que, quando um serviço é parado, todos os processos filhos, netos, bisnetos etc. também sejam parados.
  • Com um gerenciamento mais robusto, mais ciclos de CPU são necessários para a criação de novos processos. Mas devido ao alto desempenho dos processadores, isto não parece ser um problema para o systemd.
  • No systemd, a carga de processos, mudança de runlevel e scripts de carga são bem diferentes do init.

A sintaxe dos arquivos de configuração do Systemd, chamados de unidades, é inspirada nos arquivos .ini do Windows. Estes arquivos são encontrados em dois diretórios, a saber:

/usr/lib/systemd/system/: Unidades provenientes de pacotes de software instalados;

/etc/systemd/system/: Unidades instaladas pelo administrador;

Veja como lidar com os serviços no systemd utilizando o comando systemctl:

Para verificar o status de um serviço no systemd

# systemctl status cron.service

cron.service – Command Scheduler

               Loaded: loaded (/lib/systemd/system/cron.service; enabled)

               Active: active (running) since Mon, 28 May 2012 18:09:57 -0300; 7min ago

             Main PID: 673 (cron)

               CGroup: name=systemd:/system/cron.service

                                 + 673 /usr/sbin/cron -n

Para parar um serviço no systemd

# systemctl stop cron.service

Veja o status do serviço quando parado:

# systemctl status cron.service

cron.service – Command Scheduler

               Loaded: loaded (/lib/systemd/system/cron.service; enabled)

               Active: inactive (dead) since Mon, 28 May 2012 18:18:26 -0300; 27s ago

             Main PID: 673 (code=exited, status=0/SUCCESS)

               CGroup: name=systemd:/system/cron.service

Para iniciar um serviço no systemd

# systemctl start cron.service

Para reiniciar um serviço no systemd

# systemctl restart cron.service

Para habilitar um serviço durante a carga do sistema no systemd

# systemctl enable cron.service

Para desabilitar um serviço durante a carga do sistema no systemd

# systemctl disable cron.service

Para mudar o runlevel para o modo texto (runlevel 3)

# systemctl isolate multi-user.target

Para mudar o runlevel para o modo gráfico (runlevel 5)

# systemctl isolate graphical.target

Para Alterar o runlevel padrão no systemd

1) Apagar o link simbólico:

# rm /etc/systemd/system/default.target

2) Para colocar o runlevel3 como padrão:

# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Gostou desta aula? Conheça todos os outros comandos do curso de LPIC 101. E veja como passar no exames da LPIC-1

Systemd no Linux
Classificado como:            

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.