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 rcclone van Smoorenburg System 5 .
Usar /etc/rc.localpode dar terrivelmente errado. As pessoas ficaram surpresas com o fato de o systemd não funcionar rc.localda 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.localesperando as velhas formas de fazer as coisas é então completamente desfeita pelos gostos de novas udevregras, 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-generatorgerador . 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 rcclone van Smoorenburg System 5 que se seguiu rc.localfoi 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 rcsistemas van Smoorenburg e Upstart, a coisa a fazer era criar um rcscript 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 rcscript Mewburn adequado em vez de usar /etc/rc.local. Mewburn rcfoi introduzido pelo NetBSD 1.5 em 2000.
/etc/rc.localdata da época da sétima edição Unix e antes. Foi substituído por /etc/inittabum nível de execução rcno AT&T Unix System 3 (com um pouco diferente /etc/inittabno 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-managere 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 rcnos 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