init (Português)

Status de tradução:
Esse artigo é uma tradução de
Init
. Data da última tradução: 2022-12-26. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
Processo de inicialização do Arch
ConsoleKit
Atenção
O Arch Linux só tem suporte oficial para
systemd
.
[1]
Ao usar um sistema init diferente, por favor, mencione isso em solicitações de suporte.
Init
é o primeiro processo iniciado durante a inicialização do sistema. É um processo daemon que continua em execução até que o sistema seja encerrado. Init é o ancestral direto ou indireto de todos os outros processos e adota automaticamente todos os processos órfãos. É iniciado pelo kernel usando um nome de arquivo embutido; Se o kernel não conseguir iniciá-lo, haverá um
pânico
. Normalmente, a inicialização é atribuída a
identificador de processo
1.
Os
init scripts
(ou
rc
) são iniciados pelo processo init para garantir a funcionalidade básica no início e no encerramento do sistema. Isso inclui (des)montagem de
sistema de arquivos
e inicialização de
daemons
. Um
gerenciador de serviços
dá um passo além, fornecendo controle ativo sobre processos iniciados, ou
supervisão de processos
. Um exemplo é monitorar falhas e reiniciar processos de acordo.
Esses componentes combinam-se com o
sistema
init. Algumas entradas incluem o gerenciador de serviços no processo de inicialização ou possuem scripts de inicialização em relação próxima. Estes inits são abaixo referidos como
integrados
, embora as entradas em diferentes categorias possam depender explicitamente umas das outras.
Inits (integrados)
anopa
— Sistema de inicialização construído em torno do conjunto de supervisão s6.
https://jjacky.com/anopa/
||
anopa
AUR
GNU Shepherd
— Sistema de inicialização escrito em
Guile
.
https://www.gnu.org/software/shepherd/
||
shepherd
AUR
OpenRC
— Sistema de inicialização baseado em dependência.
https://www.gentoo.org/proj/en/base/openrc/
||
openrc
AUR
openrc-arch-services-git
AUR
systemd
— Sistema de inicialização baseado em dependência com paralelização agressiva, supervisão de processo usando cgroups e a capacidade de depender de um ponto de montagem dado ou um serviço dbus.
https://systemd.io/
||
systemd
Inits
BusyBox
— Utilitários para sistemas de recuperação e embarcados.
https://busybox.net/
||
busybox
sinit
— Inicialização simples inicialmente baseada no init mínimo de Rich Felker.
https://core.suckless.org/sinit
||
sinit
AUR
Init scripts
kisslinux-init
— Framework de inicialização do KISS Linux.
https://github.com/kisslinux/init
||
kisslinux-init
AUR
Gerenciadores de serviços
Monit
— Monit é uma ferramenta de supervisão de processos para Unix e Linux. Com o monit, o status do sistema pode ser visualizado diretamente a partir da linha de comando ou através do servidor da Web HTTP(S) nativo.
https://mmonit.com/monit/
||
monit
perp
— Supervisor de processo persistente (serviço) e estrutura de gerenciamento para UNIX.
http://b0llix.net/perp/
||
perp
AUR
runit
— Esquema de inicialização do UNIX com supervisão de serviço, uma substituição para o SysVinit e outros esquemas de inicialização.
https://smarden.org/runit/
||
busybox
s6
— Pequeno conjunto de programas para UNIX, projetado para permitir a supervisão de serviço na linha de daemontools e runit.
https://skarnet.org/software/s6/
||
s6
AUR
Supervisor
— Um sistema que permite aos usuários monitorar e controlar os processos em sistemas operacionais UNIX-like.
https://supervisord.org/
||
supervisor
Configuração
Migrar serviços em execução
Para executar daemons sob o novo init, salve uma lista de daemons em execução:
$ systemctl list-units --state=running "*.service" > daemons.list
e configure os
#Init scripts
adequadamente. Veja também
[2]
.
Nota
systemd-tmpfiles(8)
,
módulos de kernel
e
sysctl
também podem precisar de configuração.
logind
logind
requer
systemd
para ser o processo init.
[3]
local sessions
Portanto,
sessões locais
e outras funcionalidades não estão disponíveis.
Dica
Uma versão autônoma do
logind
está disponível como
elogind
AUR
[
link quebrado
: package not found]
[4]
Permissões de dispositivo
Adicione usuários aos respectivos
grupos de usuários
para acesso ao dispositivo e reinicialize. A associação atual ao grupo deve primeiro ser verificada com
id
usuário
.
# usermod -a -G video,audio,power,disk,storage,optical,lp,scanner,input
usuário
Veja também
Usuários e grupos#Grupos pré-systemd
. Para criar regras de grupo para usar com
Polkit
, veja
Polkit#Bypass password prompt
.
X sem root
Como
Xorg.wrap
não verifica se logind está ativo
[5]
, permissões de root para Xorg precisam ser
habilitadas manualmente
.
Gerenciamento de energia
Veja
pm-utils
AUR
e
acpid
para substituir o
gerenciamento de energia por systemd
.
Tarefas agendadas
Arch usa arquivos
timer
em vez do
cron
, por padrão. Veja
archlinux-cronjobs
[
link inativo
2025-08-15 ⓘ]
para trabalhos de cron básicos.
Dbus
This article or section needs expansion.
Reason:
Explanative section removed with
458617
(Discuss in
Talk:Init (Português)
)
As instâncias de usuário do
dbus-daemon
são iniciadas pelo
systemd/User
[6]
. Ao solicitar IPC entre aplicativos de desktop, restaure
30-dbus.sh
:
/etc/X11/xinit/xinitrc.d/30-dbus.sh
#!/bin/bash

# inicia uma instância de sessão dbus
if [ -z "${DBUS_SESSION_BUS_ADDRESS-}" ] && type dbus-launch >/dev/null; then
  eval $(dbus-launch --sh-syntax --exit-with-session)
fi
Dicas e truques
systemd-nspawn
systemd-nspawn
é uma ferramenta para sistemas systemd. Desde o Linux 2.6.19, é possível, no entanto, executar o systemd em um sistema não-systemd usando o espaço de nome de PID. Para isso, o kernel precisa ser configurado com
CONFIG_PID_NS
e
CONFIG_NAMESPACES
).
O espaço de nome de PID cria uma nova hierarquia de processos que começam com o PID 1. Além disso, o systemd exige que um sistema de arquivos raiz "chrootado" seja montado. Portanto, você precisa pelo menos fazer uma montagem de ligação, porque senão alguns serviços falharão com
"Failed at step NAMESPACE spawning" due to "Invalid operation"
pois o systemd tenta remontar a raiz com a opção
private
.
Para configurar um chroot com um novo namespace PID, você pode usar o jchroot
[7]
[8]
. Certifique-se de não montar
/proc
dentro da nova raiz antes de fazer o chroot, caso contrário, o systemd detectará o ambiente chroot. Você pode montá-lo depois que o systemd estiver em execução.
Substituindo udev
Atenção
Substituir o udev não é necessário, já que
systemd-udev
é funcional sem
systemd
como PID 1. Algumas substituições como
eudev
também não podem coexistir com
systemd
– garanta um init alternativo está inicializado
antes
em sua instalação.
eudev
— O eudev é um fork do udev iniciado pelo projeto Gentoo. É principalmente projetado e testado com OpenRC.
Gentoo:eudev
||
eudev
AUR
[
link quebrado
: package not found]
mdev
— Gerenciador de dispositivos para uso em sistemas embarcados.
https://git.busybox.net/busybox/plain/docs/mdev.txt
||
busybox
smdev
— O smdev é um programa simples para gerenciar nós de dispositivos. É principalmente compatível com o mdev, mas não possui todos os seus recursos.
https://git.suckless.org/smdev/
||
smdev
AUR
Veja também
Debian:Debate/initsystem
Como executar o s6-svscan como processo 1
Substitua o systemd com busybox + minirc
Init vs. runsv
Desmistificando o sistema init
Uma história de sistemas init modernos (1992-2015)
[
link inativo
2024-10-12 ⓘ]
Gentoo: Comparação de sistemas init
InitWare: Guia de estudo dos colaboradores
O pacote nosh