Quero adicionar uma iptables
regra permanente à minha nova VPS
e, após uma breve pesquisa no Google, fiquei surpreso ao saber que existem dois lugares em que essa regra pode ser adicionada, que parece idêntica: /etc/rc.local
e /etc/init.d/rc.local
. Talvez alguém saiba por que dois lugares para colocar um código de inicialização simples? É específico para o linux (mas o ubuntu possui os dois!)? Ou um deles está obsoleto?
configuration
startup
grigoryvp
fonte
fonte
/etc/rc.local
um tempo.Respostas:
/etc/init.d
é mantido no ubuntu para compatibilidade com versões anteriores do sysvinit. Se você realmente olhar,/etc/init.d/rc.local
verá (também de um servidor LTS 12.04):E "Executar /etc/rc.local" é exatamente o que ele faz. A totalidade
/etc/rc.local
é:Eu acho que o objetivo disso é fornecer um local simples e simples para colocar os comandos do shell que você deseja executar na inicialização, sem precisar lidar com o material de serviço stop | start, que está dentro
/etc/init.d/rc.local
.Portanto, é de fato um serviço e pode ser executado como tal. Eu adicionei uma
echo
linha para/etc/rc.local
e:No entanto, eu não acredito que seja referenciado por qualquer coisa no
/etc/init
diretório do iniciante (não init.d!):Existem alguns serviços "rc" no inicio:
Mas nenhum deles parece ter algo a ver com rc.local.
fonte
Isso é mais uma coisa específica da distribuição. (como, você não encontrará rc.local diferente no CentOS).
Agora, voltando à sua pergunta real, acho que adicionar qualquer coisa dentro do /etc/init.d/rc.local faz com que ele comece como um "serviço", enquanto que qualquer coisa dentro do /etc/rc.local simplesmente iniciaria o script no momento da inicialização.
Não tenho muita certeza de por que o Ubuntu ainda mantém os dois? (Talvez alguém possa lançar alguma luz sobre essa parte !!)
fonte
/etc/init.d/rc.local
a parada inicia as coisas/etc/rc.local
(veja minha resposta para mais detalhes)./etc/rc.local
script é o processo executável controlado pelo/etc/initd/rc.local
script, assim como (por exemplo)/bin/syslog
seria o processo executável controlado pelo/etc/initd/syslog
. Você diz explicitamente que/etc/rc.local
é apenas um script de inicialização,/etc/initd/rc.local
sendo um serviço em nível de execução completamente separado.