# OpenRC (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de Openrc. Data da última tradução: 2020-08-14. 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

Atenção: O openrcAUR depende (implicitamente) do sysvinitAUR, que entra em conflito com o systemd-sysvcompat. Portanto, o sistema inicializa com sysvinit simples por padrão (não com o OpenRC ou systemd), certifique-se de adicionar um `init=some-init` ao parâmetro do kernel.

O OpenRC e os pacotes acompanhantes estão disponíveis no AUR. Para obter detalhes sobre os componentes init, consulte Init.

Instale o pacote openrcAUR ou openrc-gitAUR. 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 ou openrc-sysvinitAUR[link quebrado: package not found]. 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-gitAUR. 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-forkAUR, arquivos de configuração são instalados em `/etc/openrc/`.

### Inicializando

Para inicializar com OpenRC defina o {ic|init}} opção no kernel parameters.
Para usar o init integrado do OpenRC, defina `init=/usr/bin/openrc-init`. Para usar o SysVinit, fornecido pelo openrc-sysvinitAUR[link quebrado: package not found], defina `init=/usr/bin/init-openrc`.
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
- OpenRC migration
- gentoo wiki.

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 | Nivel de execução | 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 Serviços nativos (EN) e Daemons.

### 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, dhcpcd ou netcfgAUR habilitando os respectivos serviços. O netcfg tem o mesmo comportamento do netctl (veja [3] se você deseja habilitar a conexão de perfis na inicialização - requer `wpa_actiond`). Veja ferramentas netcfg (EN).

### 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 [4] 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 o kernel parameters.

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. [5]

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.

## Usando OpenRC com um ambiente de desktop

Se estiver usando OpenRC com um ambiente desktop, O ConsoleKit pode ajudar. Instale o serviço ao `/etc/openrc/init.d`, e habilite-o:

    # rc-update add consolekit default

Veja ConsoleKit para mais informações.

Comece com OpenRC 0.28 SysVinit é substituído por openrc-init, shutdown é substituído por openrc-shutdown, usando o consolekit o sistema pode desligar ao desligar a partir da sessão de desktop. Então use elogind-gitAUR ative-o com:

    # rc-update add elogind default

Além disso, você precisa substituir polkit-consolekit por polkit-elogindAUR[link quebrado: package not found], ou o sistema irá soar o alarme "não autorizado a executar operação" ao montar o dispositivo usb e não pode reiniciar ou desligar a partir da sessão de desktop.

## 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-nosystemdAUR para o dbus)

## Veja também

- Wikipedia:OpenRC
- Gentoo wiki
- Forum thread about OpenRC in Arch
- Blog: OpenRC on Arch Linux
- Manjaro wiki

Category:

- Init (Português)

Hidden category:

- Pages with broken package links