Skip to main content

202.1 Inicialização do Sistema


O maior foco aqui é no estudos sobre SysV e SysD.



SysV Init


Relembre aqui.



System D ou SysD


Relembre aqui.



Systemd-delta


O comando systemd-delta é utilizado para verificar modificações feitas nas units do systemd, especialmente quando há sobrescritas ou complementações de arquivos de unidade padrão.


No Linux, uma unit do systemd (como serviços .service, montagens .mount, etc.) pode existir em diferentes diretórios, com diferentes níveis de prioridade. Os principais diretórios onde essas units podem estar são:

  • /etc/systemd/system/ — configurações personalizadas do administrador (maior prioridade)
  • /run/systemd/system/ — configurações temporárias, geralmente geradas em tempo de execução
  • /lib/systemd/system/ ou /usr/lib/systemd/system/ — configurações padrão fornecidas por pacotes

Quando uma unit tem versões em mais de um desses diretórios, o systemd utiliza a versão de maior prioridade, podendo ignorar ou mesclar as outras. O systemd-delta serve justamente para identificar e exibir essas diferenças.


O comando indica se uma unit:

  • Está sendo sobrescrita (OVERRIDDEN)
  • Foi complementada com configurações adicionais (EXTENDED)
  • É equivalente, ou seja, a cópia foi feita mas o conteúdo é idêntico (EQUIVALENT)
  • Está máscarada (MASKED)
  • Foi removida (DELETED)

Abaixo podemos ver um exmeplo:

$ sudo systemd-delta 
[OVERRIDDEN] /etc/tmpfiles.d/screen-cleanup.conf → /usr/lib/tmpfiles.d/screen-cleanup.conf

--- /usr/lib/tmpfiles.d/screen-cleanup.conf 2017-06-18 22:31:56.000000000 +0000
+++ /etc/tmpfiles.d/screen-cleanup.conf 2021-03-09 16:07:44.607758000 +0000
@@ -1 +1,2 @@
-d /run/screen 0777 root utmp
+# This file is generated by /var/lib/dpkg/info/screen.postinst upon package configuration
+d /run/screen 1777 root utmp

[EQUIVALENT] /etc/systemd/system/multipath-tools.service → /usr/lib/systemd/system/multipath-tools.service
[EXTENDED] /usr/lib/systemd/system/rc-local.service → /usr/lib/systemd/system/rc-local.service.d/debian.conf
[EXTENDED] /usr/lib/systemd/system/user@.service → /usr/lib/systemd/system/user@.service.d/timeout.conf

4 overridden configuration files found.


LSB - Linux Standard Base


O Linux Standard Base surgiu dentro da Linux Foundation como um conjunto de especificações criado em conjunto com diversas distribuições Linux para padronizar a estrutura de sistemas de software. Ele reúne várias normas já existentes (a principal é a Filesystem Hierarchy Standard – FHS) e acrescenta outras camadas, desde detalhes de empacotamento até a forma como scripts de inicialização respondem a comandos como start, stop e restart.


Durante os anos 1990, cada distro evoluiu à sua maneira. Desenvolvedores independentes tinham de reescrever instaladores, init-scripts ou localizar bibliotecas diferentes para cada alvo. O LSB apareceu para mitigar esse "custo de portabilidade", definindo:

  • Layout de diretórios: Adota 100 % da FHS.
  • Interface de init-scripts: Cabeçalhos padronizados e comandos obrigatórios.
  • Conjunto de bibliotecas compartilhadas: Devem existir numa implementação "compliant" (em conformidade com regras ou leis).
  • Formato de pacotes: Baseado em RPM (mesmo em distribuições que usam outro gerenciador, como .deb, existe um mecanismo de compatibilidade).

Nem todo mundo abraçou o LSB por completo. Algumas distros só incorporam a FHS, outras implementam os cabeçalhos de init-scripts, poucas seguem as bibliotecas obrigatórias à risca. O próprio projeto Debian, que historicamente carregava o selo LSB, anunciou a saída do grupo há alguns anos, deixando claro que pretende evoluir em seu próprio ritmo.


Isso não significa que o LSB morreu, ele continua servindo de referência, sobretudo em ambientes corporativos, onde uma certificação formal simplifica auditorias ou contratos de suporte. Entretanto, no dia-a-dia, administradores encontram variações. Na maioria dos sistemas Red Hat a hierarquia já cumpre quase tudo sem instalar nada extra, enquanto num Debian/Ubuntu você precisa do metapacote lsb para colocar no lugar algumas bibliotecas de compatibilidade e a ferramenta lsb_release.


Em ambientes Debian Like podemos instalar o pacote lsb para tornar a distra dentro do padrão LSB.

# Instalando o LSB no Ubuntu/Debian:
$ apt-get install lsb

# Exibe infos vindas dos cabeçalhos LSB
$ lsb_release -a
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm

Além do lsb_release, o pacote traz os cabeçalhos de script em /lib/lsb/init-functions e uma coleção de symlinks que garantem que nomes clássicos de bibliotecas (por exemplo, libcrypto.so.4) existam mesmo que a versão real já seja mais nova.


Para mais detalhes verifique aqui.