Como usar /etc /rc.local na inicialização

Como usar /etc /rc.local na inicialização
O rc.local Script em algumas distribuições Linux e Systems Unix é um script de inicialização do SuperUser, geralmente localizado no diretório/etc/etc/rc.d. O nome do arquivo RC refere -se a executar o controle.

Rc.Local é um script obsoleto mantido para fins de compatibilidade para sistemas Systemv.

Era uma vez um arquivo universal presente na maioria das distribuições Linux devido à sua simplicidade para os administradores do Linux definirem scripts de inicialização ou serviços adicionais para iniciar.
O arquivo rc.Local não contém informações sobre componentes de inicialização do sistema, mas apenas componentes definidos por superusuário/root. No entanto, nem todos os programas de inicialização de raiz são descritos em RC.local, mas apenas aqueles que não interferem nos componentes do sistema. Geralmente, rc.Local é executado após o início dos serviços normais.

Sistemas Linux mais recentes, incluindo Systemd, substituíram o RC.script local, mas pode ser restaurado, apesar sendo uma solução recomendada. Este tutorial mostra como restaurar e usar o RC.script local e uso rc-local by systemd em distribuições mais recentes do Linux.

Habilitando /etc /rc.Local em Distribuições Linux usando o Systemd:

IMPORTANTE: É importante lembrar /etc /rc.Local é descontinuado e substituído. O método atual para executar scripts na inicialização é descrito após as instruções para ativar /etc /rc.local. Este tutorial é destinado a usuários com necessidades específicas.

Para começar, crie o arquivo /etc/rc.local Usando o editor que você deseja e sudo (ou raiz):

nano /etc /rc.local

Cole o código abaixo no arquivo e substitua Com o comando que você deseja executar na startup. Não use sudo. Se um comando incluído neste script não executar, o serviço que chamará RC.Local (RC-Local.serviço) falhará.

#!/bin/sh -e
#
# rc.local
#
# Este script é executado no final de cada nível de running multiuser.
# Verifique se o script "sairá 0" sobre o sucesso ou qualquer outro
# valor no erro.
#
# Para ativar ou desativar este script, basta alterar a execução
# bits.
#
# Por padrão, este script não faz nada.

saída 0

No meu exemplo, vou usar o RC.Script local para atualizar o banco de dados Security Scan Vuls sempre que o sistema inicia. Você pode escrever qualquer script que deseja ser executado no início, exceto para scripts de rede (como iptables) que podem interferir no processo de inicialização normal e ter seus próprios scripts ou diretórios de inicialização.

Salve o arquivo (Ctrl+x e Y) e dê permissões de execução executando o comando abaixo:

sudo chmod +x /etc /rc.local

Crie o arquivo /etc/Systemd/System/RC-Local.serviço, correr:

nano/etc/systemd/system/rc-local.serviço

Cole os seguintes comandos e salvando, pressionando pressionando Ctrl+x e Y.

Execstart =/etc/rc.início local
TimeoutSec = 0
StandardOutput = tty
Permaneceftexit = sim
SysvstartPriority = 99
[Instalar]
WantedBy = MultiUser.alvo

Ativar rc-local:

sudo systemctl Ativar rc-local

Agora você pode começar o rc-local.serviço, que lerá o /etc /rc.arquivo local. Execute o comando mostrado abaixo:

SystemCTL START RC-LOCAL.serviço

Você pode verificar se o RC-Local foi carregado corretamente executando o seguinte:

status do SystemCTL rc-local.serviço

A maneira correta (Systemd):

O processo descrito acima é antigo, obsoleto e pode travar alguns serviços.
Esta seção mostra o processo atual para iniciar scripts ou serviços na inicialização para distribuições Linux usando o Systemd.

Systemd é um gerente de serviços que atribui grupos de controle de serviços (CGROUP) e rastreia processos. Systemd é o processo (PID) 1 Responsável pela inicialização do sistema.

Para adicionar serviços ou scripts na startup, você precisa criar um Unidade Systemd.
As unidades Systemd incluem serviços (.serviço), pontos de montagem (.montar), dispositivos (.dispositivo) ou soquetes (.soquete). Ao contrário do processo antigo descrito anteriormente com RC.Local, em vez de editar o mesmo arquivo que contém informações sobre scripts de usuário, você precisa criar uma unidade de serviço Systemd para cada script que você deseja executar na inicialização.

As unidades Systemd estão localizadas em /etc/Systemd/System, E é aí que precisamos criar a unidade Systemd para o script que queremos executar na inicialização.

A imagem a seguir mostra o conteúdo da unidade TeamViewer.serviço.

Onde as diretivas [da unidade]:

  • Descrição = Esta diretiva descreve a unidade; você pode definir o nome da unidade.
  • Requer = Aqui, você pode especificar dependências para evitar falhas de inicialização.
  • Quer = Como o anterior, mantém o serviço funcionando, mesmo que não encontre as dependências definidas.
  • Depois = A unidade começará após a especificada nesta diretiva.

Algumas diretivas usadas na seção [Serviço] podem ser compartilhadas com [unidade].

  • Tipo = No exemplo mostrado acima, bifurcação indica que o serviço será morto, mantendo os processos filhos que devem ser atribuídos um PID.
  • Pidfile = A diretiva de forking requer a diretiva PIDFIL.
  • Execstart = Aqui, você especifica o caminho e os comandos que deseja ser executado. Isso é semelhante ao RC.arquivo local.
  • Reiniciar = Esta diretiva instrui o SystemD quando reiniciar a unidade. As opções disponíveis são falhas, on-sea.
  • StartlimitInterval = Esta diretiva indica que a unidade tem 60 segundos para 10 tentativas de reiniciar após a falha.
  • Startlimitburst = Esta diretiva indica o limite de tentativas, no exemplo acima, 10 tentativas em 60 segundos.

A única diretiva [install] no exemplo acima é desejada.

  • WantedBy = Aqui, você pode especificar esta unidade como uma dependência; É semelhante à diretiva de desejos, mas definir a unidade atual é considerada uma dependência por outra unidade.

Observação: Você pode verificar todas as diretivas do Systemd em
https: // www.Freedesktop.org/software/systemd/man/systemd.diretivas.html

Adicionando sua própria unidade Systemd:

Para executar um script na startup, crie -o sob /etc/Systemd/System com seu nome seguido por um ponto e serviço, por exemplo, Linuxhint. Serviço. Você pode usar o Nano como na amostra a seguir:

Cole o seguinte, substituindo <Nome ou descrição do script> com uma descrição do seu script e onde /usr/sbin/linuxhint.sh Escreva o caminho correto.

[Unidade]
Descrição ==