Esqueça rc.local
.
Como eu disse sobre CentOS 7 e sobre o Debian 8 e sobre o Ubuntu 15 :
Você está usando um sistema operacional systemd + Linux. /etc/rc.local
é um mecanismo de compatibilidade com versões anteriores duplas no systemd, porque é um mecanismo de compatibilidade com versões anteriores de um mecanismo que por si só era um mecanismo de compatibilidade no rc
clone van Smoorenburg System 5 .
Usar /etc/rc.local
pode dar terrivelmente errado. As pessoas ficaram surpresas com o fato de o systemd não funcionar rc.local
da mesma maneira, no mesmo local do bootstrap, como estão acostumados. (Ou, erroneamente, espera: na verdade, ele não foi executado por último no sistema antigo, como o manual do OpenBSD ainda aponta.) Outros se surpreenderam com o fato de que o que eles criaram rc.local
esperando as velhas formas de fazer as coisas é então completamente desfeita pelos gostos de novas udev
regras, o NetworkManager, systemd-logind
, systemd-resolved
, ou vários "kit" s.
Como exemplificado por " Por que o` init 0` resulta em "Excesso de Argumentos" na instalação do Arch? ", Alguns sistemas operacionais já fornecem systemd sem os recursos de compatibilidade com versões anteriores , como o systemd-rc-local-generator
gerador . Enquanto o Debian ainda mantém os recursos de compatibilidade com versões anteriores , o Arch Linux constrói o systemd com eles desativados . Assim, no Arch e nos sistemas operacionais como ele esperam /etc/rc.local
ser totalmente ignorados .
Esqueça rc.local
. Não é o caminho a percorrer. Você tem um sistema operacional systemd + Linux. Portanto, faça uma unidade de serviço do sistema adequada e não comece a partir de um ponto que esteja a dois níveis de compatibilidade com versões anteriores. (No Ubuntu e no Fedora, ele é removido três vezes, o rc
clone van Smoorenburg System 5 que se seguiu rc.local
foi substituído por duas vezes , há mais de uma década, primeiro pelo iniciante e depois pelo systemd.)
Lembre-se também da primeira regra para migrar para o systemd .
Essa nem é uma idéia nova, específica do systemd. Nos rc
sistemas van Smoorenburg e Upstart, a coisa a fazer era criar um rc
script van Smoorenburg ou arquivo de trabalho Upstart adequado, em vez de usá-lo rc.local
. Até o manual do FreeBSD observa que hoje em dia se cria um rc
script Mewburn adequado em vez de usar /etc/rc.local
. Mewburn rc
foi introduzido pelo NetBSD 1.5 em 2000.
/etc/rc.local
data da época da sétima edição Unix e antes. Foi substituído por /etc/inittab
um nível de execução rc
no AT&T Unix System 3 (com um pouco diferente /etc/inittab
no AT&T Unix System 5) em 1983 . Até isso agora é história.
Crie definições de serviço nativas apropriadas para o seu sistema de gerenciamento de serviços, seja um pacote configurável para os conjuntos de ferramentas nosh service-manager
e system-control
, um /etc/rc.d/
script para Mewburn rc
, um arquivo de unidade de serviço para systemd, um arquivo de tarefa para Upstart, um diretório de serviço para runit / s6 / daemontools -core, ou mesmo um /etc/init.d/
script para van Smoorenburg rc
.
No systemd, esses arquivos de unidades de serviço adicionadas pelo administrador entram /etc/systemd/system/
normalmente (ou /usr/local/lib/systemd/system/
raramente). Com o nosh service manager, /var/local/sv/
é um local convencional para pacotes de serviços locais. Mewburn rc
nos usos do FreeBSD /usr/local/etc/rc.d/
. Arquivos de unidades de serviço empacotados e pacotes de serviços, se você os estiver criando, vão para lugares diferentes.
Leitura adicional