OpenRC (Português)

Status de tradução:
Esse artigo é uma tradução de
Openrc
. Data da última tradução: 2023-03-27. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
init
Atenção
O Arch Linux possui suporte oficial apenas para o
systemd
. Ao usar o OpenRC, mencione isso em solicitações de suporte.
O
OpenRC
é um gerenciador de serviços mantido pelos desenvolvedores do Gentoo. O OpenRC é baseado em dependências e trabalha com o programa init fornecido pelo sistema, normalmente
SysVinit
.
Instalação
O OpenRC e os pacotes acompanhantes estão disponíveis no
AUR
. Para obter detalhes sobre os componentes init, consulte
Init
.
Instale
o pacote
openrc
AUR
ou
openrc-git
AUR
[
link quebrado
: package not found]
. A partir da versão 0.25, o OpenRC fornece seu próprio init em
/usr/bin/openrc-init
.
Opcionalmente, você pode usar outras inits de, por exemplo,
busybox
. Observe que quando
openrc-init
é usado, deve ser emparelhado com
openrc-shutdown
, e
não
o
shutdown
ou
reboot
comandos de outros pacotes, caso contrário, você encontrará erros.
Um conjunto básico de arquivos de serviço está disponível no pacote
openrc-arch-services-git
AUR
.
Outros pacotes podem ter arquivos de serviço fornecidos fora deste pacote; é recomendável uma pesquisa no AUR.
Para manter a compatibilidade com o
initscripts-fork
AUR
[
link quebrado
: package not found]
, arquivos de configuração são instalados em
/etc/openrc/
.
Inicializando
Para inicializar com OpenRC, defina o {ic|init}} opção nos
parâmetros do kernel
.
Para usar o init integrado do OpenRC, defina
init=/usr/bin/openrc-init
.
Observe que ao usar
openrc-init
, o
/etc/inittab
o arquivo não é usado.
Configuração
O diretório
/etc/openrc/conf.d
, e o arquivo
/etc/openrc/rc.d
é usado para a configuração.
Para obter informações gerais sobre a configuração do OpenRC, consulte:
OpenRC manuals
Gentoo:OpenRC
.
Para obter instruções ao migrar do
systemd
, veja
Init#Configuração
.
Serviços
Os serviços OpenRC são ativados pela emissão
rc-update add
service_name
runlevel
como root. Recomenda-se habilitar pelo menos os seguintes serviços:
Nome do serviço
Runlevel
Descrição
udev
sysinit
Conexão automática do dispositivo
alsa
padrão
ALSA
estado
acpid
padrão
eventos ACPI
dbus
padrão
Messagem dbus
dcron
padrão
Scheduling
syslog-ng
padrão
Sistema de logs
Atenção
Se estiver usando
init=/usr/bin/openrc-init
em seus parâmetros de kernel, você precisará habilitar manualmente os serviços do
getty
, caso contrário, você ficará sem TTYs interativos
[1]
Se necessário, crie serviços para cada
getty
desejado criando links simbólicos para
/etc/openrc/init.d/getty
. Por exemplo: para o
/dev/tty1
:
# ln -s /etc/openrc/init.d/agetty{,.tty1}
# rc-update add agetty.tty1 default
Veja também
Gentoo:Systemd#Native services
.
Rede
A rede é configurada por meio de
newnet
.
[2]
Modifique o arquivo
/etc/openrc/conf.d/network
; tanto o comando
ip
(
iproute2
) e o
ifconfig
(
net-tools
) são suportados. Abaixo está um exemplo de configuração usando
ip
.
ip_eth0="192.168.1.2/24"
defaultiproute="via 192.168.1.1"
ifup_eth0="ip link set \$int mtu 1500"
O serviço de rede é adicionado ao nível de execução de inicialização por padrão, então nenhuma ação adicional é necessária. Veja
Network configuration
para informações gerais de rede.
Nota
Você também pode usar o
NetworkManager
ou
dhcpcd
.
Logs de inicialização
Para habilitar o log de inicialização, descomente a linha
rc_logger="YES"
em
/etc/openrc/rc.conf
. Quando habilitado, os logs de inicialização são armazenados em
/var/log/rc.log
.
Hostname
OpenRC define o nome do host de
/etc/openrc/conf.d/hostname
. O arquivo tem a seguinte aparência:
# Defina como o nome do host desta máquina
hostname="meunomedohost"
Módulos do kernel
OpenRC usa
/etc/openrc/conf.d/modules
ao invés de
/etc/modules-load.d
. Por exemplo:
/etc/openrc/conf.d/modules
# Você deve consultar a documentação e configuração do seu kernel
# para obter uma lista de módulos e suas opções.

modules="vboxdrv acpi_cpufreq"
Locale
O layout do teclado pode ser configurado via
/etc/openrc/conf.d/keymaps
e
/etc/openrc/conf.d/consolefont
. Você também pode definir as configurações por meio do arquivo
/etc/locale.conf
, que é obtido via
/etc/profile.d/locale.sh
.
Veja
Gentoo:Localization/Guide#Keyboard layout for the console
e
Locale
para mais detalhes.
Uso
Esta seção traça um paralelo entre
systemd
e outro sistema de
init
.
Você pode omitir o
.service
e a extensão
.target
, especialmente se estiver editando temporariamente os
parâmetros do kernel
.
SystemD
SysVinit
OpenRC
Descrição
systemctl list-units
rc.d list
rc-status
Listar o status dos serviços em execução
systemctl --failed
rc-status --crashed
Verificar serviços com falha
systemctl --all
rc-update -v show
Exibir todos os serviços disponíveis.
systemctl (start, stop, restart, status) daemon.service
rc.d (start, stop, restart) daemon
rc-service daemon (start, stop, restart, status)
Mude o estado do serviço.
systemctl (enable, disable) daemon.service
chkconfig daemon (on, off)
rc-update (add, del) daemon
Ative ou desative o serviço.
systemctl daemon-reload
chkconfig daemon --add
Crie ou modifique a configuração.
Dicas e truques
Inicialização silenciosa
Para ocultar mensagens de inicialização do OpenRC, você pode editar o
/etc/inittab
e adcionar
--quiet
para cada comando openrc. Para mais informações, verifique com
$ openrc -h
.
Solução de problemas
Erro ao desmontar /tmp
Ao desligar o sistema, você pode receber uma mensagem de erro como
* Unmounting /tmp ...
* in use but fuser finds nothing [ !! ]
Isso pode ser corrigido adicionando
no_umounts="/tmp"
ao
/etc/openrc/conf.d/localmount
Nota
Esse problema ocorre apenas se o tmp estiver montado como tmpfs.
Desativar IPv6 não funciona
Uma opção é adicionar:
# Desativar ipv6
net.ipv6.conf.all.disable_ipv6 = 1
em um arquivo com uma extensão
.conf
debaixo do
/etc/openrc/sysctl.d
Durante o desligamento, remontando a raiz como falha somente leitura
Se acontecer o acima, edite o arquivo
/etc/openrc/init.d/mount-ro
e coloque:
telinit u
após a seguinte linha:
# Libere todas as gravações pendentes no disco agora
sync; sync
/etc/sysctl.conf não encontrado
Por padrão,
sysctl --system
é chamado para carregar a configuração do sysctl. Isso inclui o arquivo
/etc/sysctl.conf
, que foi removido do Arch.
[3]
Para evitar um erro de arquivo ausente, crie o arquivo:
# touch /etc/sysctl.conf
opentmpfiles-setup falhou ao iniciar
Ao inicializar o openrc, você pode ver linhas como estas:
* Setting up tmpfiles.d entries ...
chattr: Operation not supported while setting flags on /var/log/journal
chattr: No such file or directory while trying to stat /var/log/journal/%m
chattr: Operation not supported while setting flags on /var/log/journal/remote
[ !! ]
ERROR: opentmpfiles-setup failed to start
Isso é causado por
/usr/lib/tmpfiles.d/journal-nocow.conf
usando opções que são válidas apenas se o journal estiver em um sistema de arquivos btrfs.
Veja
https://github.com/OpenRC/opentmpfiles/issues/2
para detalhes.
Uma solução alternativa é criar um /etc/tmpfiles.d/journal-nocow.conf vazio para substituir as configurações.
Revertendo para o systemd
Reverter para o systemd deve ser simples na maioria dos casos. É essencialmente a reversão da migração para OpenRC, com cuidado no seguinte:
Remoção ou edição do parâmetro
init=
na linha de comando do kernel
Substituição de quaisquer pacotes feitos para o OpenRC ou outros sistemas sem o systemd para seus pacotes equivalentes (por exemplo, substituição do
dbus-nosystemd
AUR
[
link quebrado
: package not found]
para o
dbus
)
Veja também
Wikipedia:OpenRC
Gentoo:OpenRC
Forum thread about OpenRC in Arch
Blog: OpenRC on Arch Linux
[
link inativo
2024-03-03 ⓘ]
Manjaro wiki