8.76. Systemd-256.4

O pacote systemd contém aplicativos para controlar a inicialização, execução e desligamento do sistema.

Tempo aproximado de construção: 0,8 UPC
Espaço em disco exigido: 267 MB

8.76.1. Instalação do systemd

Remova dois grupos desnecessários, render e sgx, das regras padrão do "udev":

sed -i -e 's/GROUP="render"/GROUP="video"/' \
       -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in

Prepare systemd para compilação:

mkdir -p build
cd       build

meson setup ..                \
      --prefix=/usr           \
      --buildtype=release     \
      -D default-dnssec=no    \
      -D firstboot=false      \
      -D install-tests=false  \
      -D ldconfig=false       \
      -D sysusers=false       \
      -D rpmmacrosdir=no      \
      -D homed=disabled       \
      -D userdb=false         \
      -D man=disabled         \
      -D mode=release         \
      -D pamconfdir=no        \
      -D dev-kvm-mode=0660    \
      -D nobody-group=nogroup \
      -D sysupdate=disabled   \
      -D ukify=disabled       \
      -D docdir=/usr/share/doc/systemd-256.4

O significado das opções "meson":

--buildtype=release

Essa chave substitui o tipo de construção padrão (debug), que produz binários não otimizados.

-D default-dnssec=no

Essa chave desliga o suporte experimental a DNSSEC.

-D firstboot=false

Essa chave impede a instalação de serviços do systemd responsáveis por configurar o sistema pela primeira vez. Eles não são úteis no LFS, pois tudo é feito manualmente.

-D install-tests=false

Essa chave impede a instalação dos testes compilados.

-D ldconfig=false

Essa chave impede a instalação de uma unidade do systemd que executa ldconfig ao inicializar; isso não é útil para distribuições de fonte, tais como o LFS, e torna o tempo de inicialização mais longo. Remova essa opção para habilitar a execução de ldconfig ao inicializar.

-D sysusers=false

Essa chave impede a instalação de serviços do systemd responsáveis por configurar os arquivos /etc/group e /etc/passwd. Ambos os arquivos foram criados no capítulo anterior. Esse processo de segundo plano não é útil em um sistema LFS dado que contas de usuário(a) são criadas manualmente.

-D rpmmacrosdir=no

Essa chave desabilita a instalação das Macros RPM para uso com o systemd, pois o LFS não suporta RPM.

-D homed=disabled and -D userdb=false

Remova dois processos de segundo plano com dependências que não se encaixam no escopo do LFS.

-D man=disabled

Impeça a geração de páginas de manual para evitar dependências extras. Nós instalaremos páginas de manual pré-geradas para o systemd a partir de um tarball.

-D mode=release

Desabilite alguns recursos considerados experimentais pelo(a) desenvolvedor(a).

-D pamconfdir=no

Evita a instalação de um arquivo de configuração do PAM não funcional no LFS.

-D dev-kvm-mode=0660

A regra padrão do "udev" permitiria que todos(as) os(as) usuários(as) acessassem /dev/kvm. Os(As) editores(as) a consideram perigosa. Essa opção a substitui.

-D nobody-group=nogroup

Informe ao pacote que o nome do grupo com GID 65534 é nogroup.

-D sysupdate=disabled

Não instale a ferramenta "systemd-sysupdate". Ela foi projetada para atualizar automaticamente distribuições binárias, de forma que é inútil para um sistema básico do Linux construído a partir do fonte. E informará erros na inicialização se estiver habilitada, mas não configurada corretamente.

-D ukify=disabled

Não instale o conjunto de comandos sequenciais "systemd-ukify". Em tempo de execução, esse conjunto de comandos sequenciais exige o módulo do "Python" "pefile" que nem o LFS nem o BLFS fornecem.

Compile o pacote:

ninja

Alguns testes precisam de um arquivo básico /etc/os-release. Para testar os resultados, emita:

echo 'NAME="Linux From Scratch"' > /etc/os-release
ninja test

Um teste chamado: systemd:core / test-namespace é conhecido por falhar no ambiente chroot do LFS. Alguns outros testes possivelmente falhem porque dependem de várias opções de configuração do núcleo.

Instale o pacote:

ninja install

Instale as páginas de manual:

tar -xf ../../systemd-man-pages-256.4.tar.xz \
    --no-same-owner --strip-components=1   \
    -C /usr/share/man

Crie o arquivo /etc/machine-id necessitado pelo systemd-journald:

systemd-machine-id-setup

Configure a estrutura básica alvo:

systemctl preset-all

8.76.2. Conteúdo do systemd

Aplicativos instalados: busctl, coredumpctl, halt (link simbólico para systemctl), hostnamectl, init, journalctl, kernel-install, localectl, loginctl, machinectl, mount.ddi (link simbólico para systemd-dissect), networkctl, oomctl, portablectl, poweroff (link simbólico para systemctl), reboot (link simbólico para systemctl), resolvconf (link simbólico para resolvectl), resolvectl, runlevel (link simbólico para systemctl), shutdown (link simbólico para systemctl), systemctl, systemd-ac-power, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-confext (link simbólico para systemd-sysext), systemd-creds, systemd-delta, systemd-detect-virt, systemd-dissect, systemd-escape, systemd-hwdb, systemd-id128, systemd-inhibit, systemd-machine-id-setup, systemd-mount, systemd-notify, systemd-nspawn, systemd-path, systemd-repart, systemd-resolve (link simbólico para resolvectl), systemd-run, systemd-socket-activate, systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, systemd-tty-ask-password-agent, systemd-umount (link simbólico para systemd-mount), telinit (link simbólico para systemctl), timedatectl e udevadm
Bibliotecas instaladas: libnss_myhostname.so.2, libnss_mymachines.so.2, libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, libsystemd-shared-256.4.so (em /usr/lib/systemd) e libudev.so
Diretórios instalados: /etc/binfmt.d, /etc/init.d, /etc/kernel, /etc/modules-load.d, /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, /etc/udev, /etc/xdg/systemd, /usr/lib/systemd, /usr/lib/udev, /usr/include/systemd, /usr/lib/binfmt.d, /usr/lib/environment.d, /usr/lib/kernel, /usr/lib/modules-load.d, /usr/lib/sysctl.d, /usr/lib/systemd, /usr/lib/tmpfiles.d, /usr/share/doc/systemd-256.4, /usr/share/factory, /usr/share/systemd, /var/lib/systemd e /var/log/journal

Descrições Curtas

busctl

É usado para introspecção e monitoramento do barramento D-Bus

coredumpctl

É usado para recuperar despejos da memória principal a partir do diário do systemd

halt

Normalmente invoca shutdown com a opção -h, exceto quando já em nível de execução 0, então ele informa ao núcleo para parar o sistema; ele anota no arquivo /var/log/wtmp que o sistema está sendo desligado

hostnamectl

É usado para consultar e mudar o nome de dispositivo do sistema e configurações relacionadas

init

É o primeiro processo a ser iniciado depois que o núcleo tenha inicializado o hardware; init assume o processo de inicialização e inicia os processos especificados pelos arquivos de configuração dele; nesse caso, ele inicia o systemd

journalctl

É usado para consultar o conteúdo do diário do systemd

kernel-install

É usado para adicionar e remover imagens de núcleo e de initramfs para e de /boot; no LFS, isso é feito manualmente

localectl

É usado para consultar e mudar as configurações de locale e esquema de teclado do sistema

loginctl

É usado para introspectar e controlar o estado do Login Manager do systemd

machinectl

É usado para introspectar e controlar o estado do Virtual Machine e do Container Registration Manager do systemd

networkctl

É usado para introspectar e configurar o estado dos links da rede de comunicação configurados pelo systemd-networkd

oomctl

Controla o processo de segundo plano Out Of Memory do systemd

portablectl

É usado para anexar ou desanexar serviços portáveis a partir do sistema local

poweroff

Instrui o núcleo a parar o sistema e desligar o computador (veja-se halt)

reboot

Instrui o núcleo a reinicializar o sistema (veja-se halt)

resolvconf

Registra a configuração do servidor de DNS e domínio com systemd-resolved

resolvectl

Envia comandos de controle para o gerenciador de resolução de nome da rede de comunicação ou resolve nomes de domínio, endereços IPv4 e IPv6, registros DNS e serviços

runlevel

Emite o nível de execução anterior e o atual, conforme anotado no registro mais recente do nível de execução em /run/utmp

shutdown

Desativa o sistema de uma maneira segura e protegida, sinalizando para todos os processos e notificando todos(as) os(as) usuários(as) logados(as)

systemctl

É usado para introspectar e controlar o estado do gerenciador de sistema e serviço do systemd

systemd-ac-power

Informa se o sistema está conectado a uma fonte externa de eletricidade.

systemd-analyze

É usado para analisar o desempenho da inicialização do sistema, bem como para identificar unidades problemáticas do systemd

systemd-ask-password

É usado para consultar uma palavra secreta ou frase secreta do sistema a partir do(a) usuário(a), usando uma mensagem especificada na linha de comando do Linux

systemd-cat

É usado para conectar as saídas geradas STDOUT e STDERR de um processo com o diário do systemd

systemd-cgls

Recursivamente mostra o conteúdo da hierarquia do grupo de controle selecionado do Linux em uma árvore

systemd-cgtop

Mostra os grupos de controle superiores da hierarquia do grupo de controle local do Linux, ordenados pela carga de CPU, memória e entradas/saídas de disco deles

systemd-creds

Exibe e processa credenciais

systemd-delta

É usado para identificar e comparar arquivos de configuração em /etc que substituem os padrões em /usr

systemd-detect-virt

Detecta se o sistema está sendo executado em um ambiente virtual e ajusta o Udev de acordo

systemd-dissect

É usado para inspecionar imagens de disco de SO

systemd-escape

É usado para escapar sequências de caracteres para inclusão em nomes de unidade do systemd

systemd-hwdb

É usado para gerenciar a base de dados de hardware (hwdb)

systemd-id128

Gera e imprime sequências de caracteres id128 (UUID)

systemd-inhibit

É usado para executar um aplicativo com um bloqueio de inibição de desligamento, suspensão ou inatividade, impedindo uma ação tal como um desligamento do sistema até que o processo seja completado

systemd-machine-id-setup

É usado por ferramentas de instalador do sistema para inicializar o ID de máquina armazenado em /etc/machine-id ao tempo de instalação com um ID gerado aleatoriamente

systemd-mount

É usado para montar temporariamente ou automontar discos

systemd-notify

É usado por scripts do processo de segundo para notificar o sistema init acerca de mudanças de situação

systemd-nspawn

É usado para executar um comando ou um OS inteiro, em um contêiner de espaço de nome peso leve

systemd-path

É usado para consultar caminhos de sistema e usuário(a)

systemd-repart

É usado para aumentar e adicionar partições à uma tabela de partição quando o systemd for usado com uma imagem de SO (por exemplo, um contêiner)

systemd-resolve

É usado para resolver nomes de domínio, endereços IPV4 e IPv6, registros de recurso DNS e serviços

systemd-run

É usado para criar e iniciar uma unidade transitória .service ou uma .scope e executar o comando especificado nela; isso é útil para validar unidades do systemd

systemd-socket-activate

É usado para ouvir em dispositivos de soquete e iniciar um processo depois de uma conexão bem sucedida com o soquete

systemd-sysext

Ativa imagens de extensão de sistema

systemd-tmpfiles

Cria, deleta e limpa arquivos e diretórios voláteis e temporários, baseado no formato de arquivo de configuração e local especificado em diretórios tmpfiles.d

systemd-umount

Desmonta pontos de montagem

systemd-tty-ask-password-agent

É usado para listar e (ou) processar solicitações pendentes de senha do systemd

telinit

Informa ao init para qual nível de execução mudar

timedatectl

É usado para consultar e mudar o relógio do sistema e as configurações dele

udevadm

É uma ferramenta genérica de administração do Udev que controla o processo de segundo plano udevd, fornece informação a partir da base de dados de hardware do Udev, monitora uevents, aguarda que uevents finalizem, testa a configuração do Udev e deflagra uevents para um dispositivo dado

libsystemd

É a biblioteca principal de utilitário do systemd

libudev

É uma biblioteca para acessar informação de dispositivo do Udev