Sistema de inicialização Finit 4.0 disponível

Após cerca de três anos de desenvolvimento, foi publicado o lançamento do sistema de inicialização Finit 4.0 (Fast init), desenvolvido como uma alternativa simples ao SysV init e systemd. O projeto é baseado em desenvolvimentos criados por engenharia reversa do sistema de inicialização fastinit utilizado no firmware Linux de netbooks EeePC e que se destaca por seu processo de boot muito rápido. O sistema destina-se principalmente à inicialização de sistemas compactos e embarcados, mas também pode ser usado em ambientes convencionais de desktop e servidor. Exemplos de scripts de implementação foram preparados para Void Linux, Alpine Linux e Debian GNU/Linux. O código do projeto é escrito em C e distribuído sob a licença do MIT.

Finit suporta níveis de execução no estilo init SysV, monitorando a integridade dos processos em segundo plano (reiniciando automaticamente o serviço em caso de falha), executando manipuladores únicos, iniciando serviços levando em consideração dependências e condições arbitrárias, anexando manipuladores adicionais para execução antes ou depois execução do serviço. Por exemplo, você pode configurar um serviço para ser iniciado somente depois que o acesso à rede estiver disponível ou após a inicialização de algum outro serviço, como o syslogd. Cgroups v2 é usado para definir restrições.

Para ampliar a funcionalidade e se adaptar às suas necessidades, podem ser utilizados plugins, para os quais é fornecido um sistema de ganchos que permite anexar um manipulador a vários estágios de carregamento e execução de serviços, além de fornecer vinculação a eventos externos. Por exemplo, plugins foram preparados para suportar D-Bus, ALSA, netlink, resolvconf, hot plugging de dispositivos, verificação de disponibilidade e carregamento de módulos do kernel, processamento de arquivos PID e configuração do ambiente para o servidor X.

O uso de scripts padrão para iniciar serviços criados para SysV init é suportado (/etc/rc.d e /etc/init.d não são usados, mas o suporte para /etc/inittab pode ser implementado através do plugin), bem como Scripts rc.local, arquivos com variáveis ​​de ambiente e configurações de rede /etc/network/interfaces, como no Debian e BusyBox. As configurações podem ser definidas em um arquivo de configuração /etc/finit.conf ou distribuídas em vários arquivos no diretório /etc/finit.d.

O gerenciamento é realizado através das ferramentas padrão initctl e run-parts, que permitem ativar e desativar serviços em relação aos níveis de execução, bem como lançar seletivamente alguns serviços. Finit também inclui uma implementação getty integrada (gerenciamento de terminal e login de usuário), um watchdog para monitoramento de integridade e um modo de recuperação de falhas com sulogin integrado para executar um shell de comando isolado.

Sistema de inicialização Finit 4.0 disponível

Entre as alterações adicionadas na versão Finit 4.0 (a versão 3.2 foi ignorada devido a alterações que quebraram a compatibilidade com versões anteriores):

  • O utilitário de reinicialização separado foi substituído por um link simbólico para o initctl, semelhante aos utilitários halt, shutdown, poweroff e suspend.
  • A indicação do andamento das operações foi implementada.
  • A operação dos comandos “inictl cond set|clear COND” foi alterada para vincular ações a vários eventos. A sintaxe usada para identificar serviços é em vez de vincular a caminhos .
  • A implementação integrada do servidor inetd foi removida, onde o xinetd pode ser instalado se necessário.
  • Adicionado suporte para cgroups v2 para execução de serviços em cgroups separados.
  • Adicionado modo de recuperação de falhas com seu próprio suslogin.
  • Adicionado suporte para scripts de início/parada do SysV init.
  • Adicionados manipuladores pre:script e post:script que permitem especificar suas ações executadas antes ou quando o serviço for iniciado.
  • Adicionado suporte para env:file com variáveis ​​de ambiente.
  • Adicionada a capacidade de rastrear arquivos PID arbitrários.
  • Adicionada a capacidade de iniciar tarefas e serviços usando caminhos relativos.
  • Adicionada opção "-b" ao initctl para executar ações em modo não interativo (modo em lote).
  • O watchdog integrado foi substituído por uma versão separada do watchdogd.
  • Adicionado um plugin para carregar automaticamente módulos do kernel para dispositivos conectados durante a operação.
  • Adicionado plugin para lidar com /etc/modules-load.d/.
  • Adicionado suporte para reiniciar serviços automaticamente após alterar as configurações, permitindo que você faça isso sem executar manualmente o comando “initctl reload”. Desativado por padrão e requer reconstrução com "./configure --enable-auto-reload".
  • Adicionada a capacidade de registrar operações que afetam a segurança, como alteração do nível de execução, inicialização e interrupção de serviços e falhas de serviço.
  • Suporte aprimorado para /etc/network/interfaces.

    Fonte: opennet.ru

Adicionar um comentário