SysV e Systemd

Systemd é um gerenciador de serviços. Quando falamos serviços nos referimos aos programas.

O systemd substituiu o SysV.

Com Systemd podemos parar, iniciar e reiniciar serviços. Além de muitas outras coisas, como, por exemplo, fazer com que um serviço seja iniciado automaticamente ao ligar o computador. Em um de nossos artigos sobre o samba aprendemos como fazer o samba ser iniciado automaticamente e gerenciado pelo systemd.

Gerenciando Serviços com Systemd

Abaixo usarei o programa samba como exemplo, mas poderia ser qualquer outro.

Se com o SysV usávamos “service  samba start”, “service  samba status “, “service  samba stop” para, respectivamente, iniciarmos, ver status e pararmos o samba, passamos a fazer com o samba no systemd da seguinte maneira:

 

Iniciar o samba

systemctl start samba

parar o samba

systemctl stop samba

ver o status do samba

systemctl status samba

 

Runlevels em Systemd

O SysV trabalhava com runlevels.

Runlevels diz respeito à quais serviços/programas serão iniciados ao ligarmos o computador(sistema operacional). Um outro fator que está relacionado com  runlevels é o estado atual do sistema operacional como veremos  abaixo.

  • Run Level 0: faz com que o sistema operacional seja desligado, ou seja, altera o estado do sistema operacional para poweroff.
  • Run Level 1:  faz com que o sistema se inicie em modo/estado de recuperação, sem acesso à rede. É algo parecido com o “modo de segurança do windows”.
  • Run Level 3: faz com que o sistema seja iniciado sem interface gráfica e seja usado apenas para linha de comandos.
  • Run Level 5: Faz com que o sistema seja iniciado com interface gráfica e todos os demais programas.
  • Run Level 6: reinicia(reboot) o sistema operacional

Como dito anteriormente, runlevels pertencem ao antigo SysV.

 

O systemd trabalha com targets ao invés de runlevels

  • poweroff. target é usado ao invés de runlevel 0
  • rescue.target tem a função do runlevel 1
  • multi-user.target tem a função de runlevel 3
  • graphical.target a função do runlevel 5
  • reboot.target a função de runlevel 6

 

Em systemd ao invés de “init 0” para desligar o sistema usamos “poweroff” ou “systemctl isolate poweroff.target”

elder@ubuntu:~$ poweroff

ao invés de init 6 para reniciarmos usamos “reboot” ou “systemctl isolate reboot.target”

elder@ubuntu:~$ reboot

ao invés de “init 1” para iniciarmos em modo de recuperação(também conhecido como single) usamos  “systemctl isolate rescue.target”

elder@ubuntu:~$ sudo systemctl isolate rescue

Se quisermos iniciar o Sistema sem interface gráfica usamos “systemctl isolate multi-user.target” ao invés de “init 3”

elder@ubuntu:~$ sudo systemctl isolate multi-user.target

 

No SysV usávamos o comando “runlevel” para vermos qual runlevel estava sendo usado no momento

elder@ubuntu:~$ runlevel 
N 5

com systemd usamos “systemctl get-default ”

elder@ubuntu:~$ systemctl get-default 
graphical.target

para definirmos qual runlevel  seria usado todas as vezes que ligássemos o sistema editávamos o arquivo “/etc/inittab”. Para definirmos um taget no systemd basta executarmos “systemctl set-default target_a_ser_usado”

elder@ubuntu:~$ sudo systemctl set-default graphical.target

É bom diferenciarmos o set-default de isolate. set-default deixa as configurações/alterações  do systemd permanentes e o isolate funciona apenas para aquele momento que o sistema foi iniciado.

Processo init

No SysV havia o processo init. Init era o primeiro processo a ser iniciado e ele iniciava os demais e era considerado o pai de todos o processos por isso.

Hoje o processo init ainda existe mas apenas por questão de compatibilidade de uso.

O processo pai de todos os outros no systemd  é um processo chamado de systemd  🙂

Na verdade, o processo init nos sistemas atuais é apenas um link para o systemd.

elder@pcLab:~$ ls -l /sbin/init 
lrwxrwxrwx 1 root root 20 jul 22  2019 /sbin/init -> /lib/systemd/systemd

O comando poweroff também é um link para o systemd

elder@ubuntu:~$ ls -l /sbin/poweroff 
lrwxrwxrwx 1 root root 14 mai  3  2020 /sbin/poweroff -> /bin/systemctl

O comando reboot também é um link

elder@ubuntu:~$ ls -l /sbin/reboot 
lrwxrwxrwx 1 root root 14 mai  3  2020 /sbin/reboot -> /bin/systemctl

Conclusão

Aqui vimos apenas dicas rápidas sobre o systemd. É bom  saber que os comandos do SysV ainda podem ser executados nos sistemas que usam o systemd, por exemplo, podemos usar à vontade os comandos “init 0”, “init 6” para desligarmos e reiniciarmos o sistema operacional; assim como os comandos “service status ssh” para vermos status do programa ssh ou “service start ssh” para iniciarmos o ssh.  Esses comandos funcionam mas não significa que o SysV esteja instalado juntamente com o systemd. Na verdade o que há são links como: runlevel6.target que aponta para reboot.target, runlevel5.target que aponta para graphical.target e assim por diante.

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe uma resposta

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