Dimentica rc.local.
Come ho detto su CentOS 7 e su Debian 8 e su Ubuntu 15 :
Stai utilizzando un sistema operativo systemd + Linux. /etc/rc.localè un doppio meccanismo di compatibilità all'indietro in systemd, perché è un meccanismo di compatibilità all'indietro per un meccanismo che era esso stesso un meccanismo di compatibilità nel rcclone di Van Smoorenburg System 5 .
L'uso /etc/rc.localpuò andare terribilmente storto. Le persone sono state sorprese dal fatto che systemd non funziona rc.localallo stesso modo, nello stesso posto nel bootstrap, a cui sono abituati. (O si aspettano erroneamente: in effetti, non è durato per ultimo nel vecchio sistema, come sottolinea ancora il manuale di OpenBSD.) Altri sono rimasti sorpresi dal fatto che ciò che hanno impostato rc.localaspettandosi i vecchi modi di fare le cose, è poi completamente annullato da artisti del calibro di nuove udevregole, NetworkManager, systemd-logind, systemd-resolved, o diversi "kit" s.
Come esemplificato da " Perché" init 0 "si traduce in" Argomenti in eccesso "durante l'installazione di Arch? ", Alcuni sistemi operativi forniscono già systemd senza le funzionalità di retrocompatibilità come il systemd-rc-local-generatorgeneratore . Mentre Debian conserva ancora le funzionalità di retrocompatibilità , Arch Linux costruisce systemd con esse disattivate . Quindi su Arch e sistemi operativi come questo si aspettano /etc/rc.local di essere completamente ignorati .
Dimentica rc.local. Non è la strada da percorrere. Hai un sistema operativo systemd + Linux. Quindi crea una corretta unità di servizio di sistema e non iniziare da un punto che è lontano due livelli di compatibilità all'indietro. (Su Ubuntu e Fedora, viene rimosso tre volte, il rcclone di Van Smoorenburg System 5 che ne è seguito è rc.localstato poi sostituito due volte , oltre un decennio fa, prima da start-up e poi da systemd.)
Ricorda anche la prima regola per la migrazione a systemd .
Questa non è nemmeno una nuova idea specifica per systemd. Sui sistemi van Smoorenburg rce Upstart, la cosa da fare era creare un corretto rcscript di Van Smoorenburg o un file di lavoro Upstart anziché utilizzarlo rc.local. Perfino il manuale di FreeBSD fa notare che oggigiorno si crea uno rcscript Mewburn corretto invece di usarlo /etc/rc.local. Mewburn è rcstato introdotto da NetBSD 1.5 nel 2000.
/etc/rc.localrisale al tempo della Settima Edizione Unix e precedenti. È stato sostituito da /etc/inittabe basato su runlevel rcin AT&T Unix System 3 (con un leggermente diverso /etc/inittabin AT&T Unix System 5) nel 1983 . Anche questa è ormai storia.
Crea definizioni di servizio native appropriate per il tuo sistema di gestione dei servizi, che si tratti di un pacchetto di servizi per il set di strumenti di nosh service-managere system-control, uno /etc/rc.d/script per Mewburn rc, un file di unità di servizio per systemd, un file di lavoro per Upstart, una directory di servizio per runit / s6 / daemontools -encore, o anche una /etc/init.d/sceneggiatura per van Smoorenburg rc.
In systemd, tali file di unità di servizio aggiunti dall'amministratore vanno di /etc/systemd/system/solito (o /usr/local/lib/systemd/system/raramente). Con nosh service manager, /var/local/sv/è un luogo convenzionale per i bundle di servizi locali. Mewburn rcsu FreeBSD usa /usr/local/etc/rc.d/. I file di unità di servizio in pacchetto e i pacchetti di servizi, se li stai realizzando, vanno in luoghi diversi.
Ulteriori letture