[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

no way to compare when less than two revisions

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.


pt-br:howtos:general_admin:openrc [2021/07/21 16:39 (UTC)] (atual) – criada macgyverpt
Linha 1: Linha 1:
 +<!-- Add your text below. We strongly advise to start with a Headline (see button bar above). -->
 +====== OpenRC ======
  
 +O OpenRC é um sistema de gerenciamento de serviços baseado em dependências. Funciona com o programa init fornecido pelo sistema, normalmente ///sbin/init//.
 +
 +===== Características =====
 +
 +O OpenRC fornece uma série de recursos, como execução de initscript iniciada por hardware e suporte a cgroups, sem a necessidade de grandes alterações de layout.
 +
 +====== Instalação ======
 +
 +Dois [[slackware:slackbuild_scripts|Slackbuilds]] estão disponíveis em [[http://slackbuilds.org/repository/14.2/system/openrc/|openrc]], que contêm o sistema de inicialização OpenRC, e o [[http://slackbuilds.org/repository/14.2/system/openrc-services/|openrc-services]], que contém vários serviços para uso com o OpenRC.
 +
 +===== Pós-instalação =====
 +
 +Após a instalação, algumas etapas são necessárias para inicializar com o OpenRC.
 +
 +=== Configure os serviços agetty ===
 +
 +  # main tty
 +  ln -s /etc/openrc/init.d/agetty /etc/openrc/init.d/agetty.tty1
 +  /sbin/rc-update add agetty.tty1 default
 +    
 +  cp /etc/openrc/conf.d/agetty /etc/openrc/conf.d/agetty.tty1
 +  echo 'agetty_options="--noclear"' >> /etc/openrc/conf.d/agetty.tty1
 +  
 +  # additional ttys
 +  for i in {2..6}; do
 +    ln -s /etc/openrc/init.d/agetty /etc/openrc/init.d/agetty.tty${i}
 +    /sbin/rc-update add agetty.tty${i} default
 +  done
 +  
 +  # serial tty (for servers)
 +  ln -s /etc/openrc/init.d/agetty /etc/openrc/init.d/agetty.ttyS0
 +  /sbin/rc-update add agetty.ttyS0 default
 +  
 +  cp /etc/openrc/conf.d/agetty /etc/openrc/conf.d/agetty.ttyS0
 +  echo 'agetty_options="--noclear"' >> /etc/openrc/conf.d/agetty.ttyS0
 +
 +=== Atualizar parâmetros de inicialização ===
 +
 +Adicione o seguinte aos seus parâmetros de inicialização (via ///etc/lilo.conf// para o lilo ou ///etc/default/grub// para o grub):
 +  init=/sbin/openrc-init
 +
 +Regenerar a configuração de inicialização ('lilo -v' ou 'grub-mkconfig -o /boot/grub/grub.cfg').
 +
 +=== Habilitar o registro de inicialização ===
 +
 +O principal arquivo de configuração do OpenRC é o ///etc/openrc/rc.conf//, e contém várias opções.
 +
 +Uma opção comum que pode ser alterada é habilitar o log de inicialização configurando ''rc_logger="YES"'', desta forma, quaisquer erros encontrados através da inicialização podem ser registrados e examinados posteriormente (a localização padrão do log é ///var/log/rc.log//).
 +
 +===== Na reinicialização =====
 +
 +Na reinicialização, um é inicializado em uma linha de comando com apenas o mínimo de serviços habilitados.
 +
 +Pode mostrar um aviso sobre o suporte obsoleto so arquivo ///etc/mtab//. Para corrigir:
 +  # cp /etc/mtab /etc/mtab.bkp
 +  # ln -snf /proc/self/mounts /etc/mtab
 +  
 +Também pode reclamar de falta do arquivo ///etc/sysctl.conf// que pode ser criado como:
 +
 +  # touch /etc/sysctl.conf
 +
 +==== Ativando alguns serviços ====
 +
 +Os serviços podem ser ativados como:
 +
 +  # rc-service add <service> <runlevel>
 +
 +Eles podem ser desativados como:
 +
 +  # rc-service del <service> <runlevel>
 +
 +Alguns serviços comuns que podem ser ativados:
 +
 +  # rc-update add dbus default
 +  # rc-update add sysklogd default
 +  # rc-update add dcron default
 +  # rc-update add alsasound boot  # para desktop
 +  # rc-update add consolekit default  # para desktop
 +  # rc-update add sshd default  # para server
 +
 +Os serviços habilitados no nível de execução atual podem ser consultados com:
 +  $ rc-status
 +
 +Serviços habilitados em todos os níveis de execução podem ser consultados com:
 +  $ rc-update
 +
 +Alguns serviços que são ativados por padrão para o runlevel **sysinit** incluí udev e udev-postmount.
 +
 +Usuários que usam dmcrypt, lvm, ou mdraid podem adicionar os seguintes serviços respectivamente ao nível de execução **boot**:
 +
 +  # rc-update add dmcrypt boot        # dmcrypt
 +  # rc-update add device-mapper boot  # lvm
 +  # rc-update add lvm boot            # lvm
 +  # rc-update add mdraid boot         # mdraid
 +
 +=== Network ===
 +
 +Se estiver usando ethernet via DHCP, o serviço **dhcpcd** pode ser habilitado:
 +  # rc-update add dhcpcd default
 +
 +Se estiver usando wi-fi em laptops, o serviço **NetworkManager** ou **wicd** pode ser habilitado; o serviço **dhcpcd** pode ser habilitado. A combinação de dhcpcd e wpa_supplicant (junto com um frontend como wpa_gui ou wpa_cli) também pode ser usada como uma alternativa leve.
 +
 +Uma rede estática pode ser configurada editando ///etc/openrc/conf.d/network//.
 +
 +=== Gerenciador de Tela ===
 +
 +Para inicializar em um gerenciador de exibição gráfica, pode editar o arquivo ///etc/openrc/conf.d/xdm// para especificar o gerenciador de exibição, e o serviço xdm pode ser habilitado:
 +
 +  # rc-update add xdm default
 +
 +Se estiver usando um laptop, o serviço **acpid** também pode ser habilitado.
 +
 +=== Migrando serviços habilitados existentes ===
 +
 +Para verificar os serviços habilitados existentes, o seguinte código pode ser usado:
 +
 +
 +  for file in /etc/rc.d/*; do
 +    if [ -x "${file}" ]; then
 +      echo "enabled ${file}"
 +    fi
 +  done
 +
 +Para esses serviços, os serviços OpenRC correspondentes podem ser habilitados, por exemplo:
 +
 +  # rc-update add acpid default
 +  # rc-update add cgmanager default
 +  # rc-update add gpm default
 +  ...
 +
 +Todos os serviços presentes podem ser consultados via:
 +
 +  $ rc-update -v
 +
 +====== Configuração ======
 +
 +Os serviços OpenRC estão presentes no diretório ///etc/openrc/init.d//, e os arquivos de configuração correspondentes estão presentes em ///etc/openrc/conf.d//
 +
 +Alguns arquivos de configuração comuns incluem:
 +
 +  /etc/openrc/conf.d/modules    # módulos a serem carregados na inicialização
 +  /etc/openrc/conf.d/hostname   # nome do host do sistema
 +  /etc/openrc/conf.d/keymaps    # mapa de teclado do console
 +
 +===== Gestão de serviços =====
 +
 +Os serviços podem ser iniciados/interrompidos/reiniciados como:
 +
 +  # rc-service <service> <action>
 +
 +Por exemplo,
 +
 +  # rc-service sshd start
 +
 +  
 +===== Desligar/Reiniciar =====
 +
 +Para desligar ou reiniciar, será necessário usar **openrc-shutdown**. Para desligar de um ambiente de desktop usando ConsoleKit2, verifique o [[https://github.com/ConsoleKit2/ConsoleKit2/pull/113|PR]].
 +
 +==== Note ====
 +
 +Os arquivos **ck-system-stop** e **ck-system-restart** no [[https://github.com/ConsoleKit2/ConsoleKit2/pull/113|PR]] pode ser salvos em ///usr/local/sbin/poweroff// e ///usr/local/sbin/reboot// respetivamente. Isso permite usar os comandos **poweroff** e **reboot** como antes.
 +
 +====== Troubleshooting ======
 +
 +Neste momento, apenas um subconjunto dos serviços incluídos foi testado, portanto, alguns deles podem não funcionar corretamente.
 +
 +Se algum serviço não funcionar, tente o sistema fornecido em ///etc/rc.d// (se estiver disponível).
 +
 +==== mysqld ====
 +
 +Experimente adicionar as seguintes linhas ao arquivo ///etc/my.cnf//
 +
 +  [mysqld]
 +  user = mysql
 +  basedir = /usr
 +  datadir = /var/lib/mysql
 +  pid-file = /run/mysql/mysql.pid
 +  socket = /var/run/mysql/mysql.sock
 +
 +==== Lidar com serviços interrompidos ====
 +
 +Às vezes, o OpenRC relata o status de um serviço como "travado". O processo pode ter morrido ou seu arquivo pid desapareceu/mudou.
 +
 +Se alguém tentar iniciar um serviço travado, `rc-service` reporta:
 +
 +  * WARNING: <service> has already been started
 +
 +Então, tenta-se parar antes de começar de novo.
 +
 +No entanto, em algumas situações, o serviço não pára. Isso leva a um impasse em que não se pode interromper o serviço nem iniciá-lo. Para esses casos:
 +
 +  # rc-service <service> zap
 +  * Manually resetting <service> to stopped state
 +
 +**zap** redefine o estado do serviço, permitindo-nos reiniciá-lo.
 +
 +===== openrc-init =====
 +
 +Desde a versão **0.25**, OpenRC fornece //openrc-init// que pode ser usado para inicializar o sistema.
 +
 +Isso permite alternar entre OpenRC e outros sistemas init, por exemplo sysvinit, apenas alterando os parâmetros de inicialização.
 +
 +Para obter mais informações, consulte o [[https://wiki.gentoo.org/wiki/OpenRC#openrc-init|Gentoo wiki]].
 +
 +===== Migrando do /etc/init.d para /etc/openrc/init.d =====
 +
 +O OpenRC 0.39+, fornecido via SBo, altera o diretório de serviço e configuração para ///etc/openrc// em vez do ///etc//.
 +
 +Isso está sendo feito para manter uma maior compatibilidade com a instalação do Slackware por padrão.
 +
 +Os serviços existentes precisarão ser migrados, detalhes abaixo sobre como isso pode ser feito.
 +
 +=== 1. Instalar openrc-0.39.2 e openrc-services-20181107 ===
 +
 +Esses pacotes enviam os arquivos de configuração e serviço em ///etc/openrc//.
 +
 +=== 2. Migrar serviços existentes ===
 +
 +Isso envolve 4 etapas:
 +
 +  # migrar serviços existentes
 +  for service in /etc/init.d/*; do
 +    svcname=$(basename "$service")
 +    if [ ! -e "/etc/openrc/init.d/${svcname}" ]; then
 +      if [ -f "/etc/init.d/${svcname}" ] && grep -q openrc "/etc/init.d/${svcname}"; then
 +        cp -v "/etc/init.d/${svcname}" "/etc/openrc/init.d/${svcname}"
 +      elif [ -L "/etc/init.d/${svcname}" ]; then
 +        # check if symlink is of a service
 +        service_target=$(readlink -f "$service")
 +        service_target_name=$(basename "$service_target")
 +        if [ $(dirname "$service_target") = "/etc/init.d" ]; then
 +          ln -sv "/etc/openrc/init.d/${service_target_name}" "/etc/openrc/init.d/${svcname}"
 +        fi
 +      fi
 +    fi
 +  done
 +  
 +  # habilitar serviços existentes
 +  for runlevel in /etc/runlevels/*; do
 +    for service in ${runlevel}/*; do
 +      svcname=$(basename "$service")
 +      rvlname=$(basename "$runlevel")
 +      if [ ! -e /etc/openrc/runlevels/${rvlname}/${svcname} ] && [ -e /etc/openrc/init.d/${svcname} ]; then
 +        ln -sv /etc/openrc/init.d/${svcname} /etc/openrc/runlevels/${rvlname}/${svcname}
 +      fi
 +    done
 +  done
 +  
 +  # verificar mudanças de configuração
 +  for file in /etc/conf.d/*; do
 +    filename=$(basename "$file")
 +    extension="${filename##*.}"
 +    if [ "$extension" = orig ] || [ "$extension" == new ]; then
 +      continue  # dont need to check extra
 +    fi
 +    if [ -e "/etc/conf.d/${filename}" ] && [ -e "/etc/openrc/conf.d/${filename}" ]; then
 +      diff -Nupr "/etc/conf.d/${filename}" "/etc/openrc/conf.d/${filename}"
 +    fi
 +  done
 +  # arquivo de configuração principal
 +  diff -Nupr /etc/rc.conf /etc/openrc/rc.conf
 +  
 +  # verificar alterações locais.d
 +  for file in /etc/local.d/*; do
 +    filename=$(basename "$file")
 +    if [ ! -e "/etc/openrc/local.d/${filename}" ]; then
 +      cp -v "/etc/local.d/${filename}" "/etc/openrc/local.d/${filename}"
 +    elif [ -e "/etc/local.d/${filename}" ] && [ -e "/etc/openrc/local.d/${filename}" ]; then
 +      # show changes
 +      diff -Nupr "/etc/local.d/${filename}" "/etc/openrc/local.d/${filename}"
 +    fi
 +  done
 +
 +As alterações de configuração encontradas acima podem ser atualizadas manualmente ou copiadas e coladas em um novo local.
 +
 +=== 3. Verifique e reinicie ===
 +
 +Verifique se ''rc-status'' está mostrando todos os serviços (pode mostrá-los como interrompidos).
 +
 +Reinicialize e verifique se as coisas estão funcionando como esperado, faça as alterações necessárias.
 +
 +Os arquivos e pastas antigos podem ser renomeados (ou removidos).
 +
 +  mv /etc/init.d /etc/init.d-openrc-bkp
 +  mv /etc/conf.d /etc/conf.d-openrc-bkp
 +  mv /etc/local.d /etc/local.d-openrc-bkp
 +  mv /etc/runlevels /etc/runlevels-openrc-bkp
 +  mv /etc/rc.conf /etc/rc.conf-openrc.bkp
 +
 +Finalmente, qualquer mudança feita no sistema Slackware padrão pode ser revertida:
 +
 +  mv /etc/init.d-bkp /etc/init.d
 +
 +====== Veja também ======
 +
 +[[https://en.wikipedia.org/wiki/OpenRC|Wikipedia]]
 +
 +[[https://wiki.gentoo.org/wiki/OpenRC|Gentoo Wiki]]
 +
 +[[https://github.com/OpenRC/openrc/|Github]]
 +
 +[[https://github.com/OpenRC/openrc/blob/master/user-guide.md|User guide]]
 +
 +[[https://www.linuxquestions.org/questions/slackware-14/using-openrc-on-slackware-4175542567/|LQ thread]]
 +
 +[[https://gitlab.com/aadityabagga/openrc-services|openrc-services repo]]
 +
 +
 +====== Sources ======
 +<!-- If you are copying information from another source, then specify that source -->
 +<!-- * Original source: [[http://some.website.org/some/page.html]] -->
 +<!-- Authors are allowed to give credit to themselves! -->
 +  * Original escrito por [[wiki:user:aaditya | Aaditya]]
 +  * Tradução Português por [[wiki:user:macgyverpt | MacgyverPT (Miguel Rosa)]]
 +<!-- * Contributions by [[wiki:user:yyy | User Y]] -->
 +
 +<!-- Please do not modify anything below, except adding new tags.-->
 +<!-- You must remove the tag-word "template" below before saving your new page -->
 +{{tag>howtos init author_aaditya}}
 +{{tag>translated_pt macgyverpt }}
 pt-br:howtos:general_admin:openrc ()