Vergiss es rc.local.
Wie gesagt zu CentOS 7 und zu Debian 8 und zu Ubuntu 15 :
Sie verwenden ein systemd + Linux-Betriebssystem. /etc/rc.localist ein doppelter Abwärtskompatibilitätsmechanismus in systemd, da es sich um einen Abwärtskompatibilitätsmechanismus für einen Mechanismus handelt, der selbst ein Kompatibilitätsmechanismus im rcKlon von van Smoorenburg System 5 war .
Die Verwendung /etc/rc.localkann schrecklich schief gehen. Die Leute waren überrascht über die Tatsache, dass systemd nicht rc.localganz auf die gleiche Weise läuft , an der gleichen Stelle im Bootstrap, wie sie es gewohnt sind. (Oder fälschlicherweise erwartet: Es lief nicht zuletzt auf dem alten System, wie das OpenBSD-Handbuch immer noch feststellt.) Andere waren überrascht, dass das, was sie bei der rc.localErwartung der alten Art und Weise, Dinge zu tun, eingerichtet haben, ist dann vollständig durch die Gleichen von neuen rückgängig gemacht udevRegeln, Networkmanager systemd-logind, systemd-resolvedoder verschiedene „Kit“ s.
Wie am Beispiel von „ Excess Argumenten‚auf Arch installieren? Warum `init 0 'in Folge‘ “, bereits einige Betriebssysteme systemd bieten , ohne die Abwärtskompatibilität verfügt wie der systemd-rc-local-generatorGenerator . Während Debian die Abwärtskompatibilitätsfunktionen beibehält , erstellt Arch Linux systemd mit deaktivierten Funktionen . Also auf Arch und Betriebssystemen wie es erwarten /etc/rc.local , völlig ignoriert zu werden .
Vergiss es rc.local. Es ist nicht der richtige Weg. Sie haben ein systemd + Linux-Betriebssystem. Stellen Sie also eine ordnungsgemäße System-Service-Einheit her und beginnen Sie nicht an einem Punkt, der zwei Ebenen der Abwärtskompatibilität entfernt ist. (Auf Ubuntu und Fedora, es ist drei mal entfernt, das van Smoorenburg System 5 - rcKlon, gefolgt rc.localdann gewesen sich zweimal überholt, vor über einem Jahrzehnt, die zuerst von Emporkömmling und dann von systemd.)
Denken Sie auch an die erste Regel für die Migration zu systemd .
Dies ist nicht einmal eine neue systemd-spezifische Idee. Auf van Smoorenburg- rcund Upstart-Systemen musste statt der Verwendung ein ordnungsgemäßes van Smoorenburg- rcSkript oder eine Upstart- Jobdatei erstellt werden rc.local. Sogar das Handbuch von FreeBSD stellt fest, dass man heutzutage ein richtiges Mewburn- rcSkript erstellt, anstatt es zu verwenden /etc/rc.local. Mewburn rcwurde 2000 von NetBSD 1.5 eingeführt.
/etc/rc.localstammt aus der Zeit von Seventh Edition Unix und früher. Es wurde von AT & T Unix System 3 (mit einem etwas anderen in AT & T Unix System 5) im Jahr 1983 abgelöst /etc/inittabund auf Runlevel-Basis . Auch das ist jetzt Geschichte.rc/etc/inittab
Erstellen Sie geeignete native Service-Definitionen für Ihr Service-Management-System, sei es ein Service-Bundle für das nosh-Toolset service-managerund system-controlein /etc/rc.d/Skript für Mewburn rc, eine Service-Unit-Datei für systemd, eine Job-Datei für Upstart oder ein Service-Verzeichnis für runit / s6 / daemontools -encore oder sogar ein /etc/init.d/Drehbuch für van Smoorenburg rc.
In systemd gehen solche vom Administrator hinzugefügten Service-Unit-Dateien /etc/systemd/system/normalerweise (oder /usr/local/lib/systemd/system/selten) ein. Mit dem nosh Service Manager /var/local/sv/ist ein herkömmlicher Ort für lokale Service-Bundles. Mewburn rcunter FreeBSD verwendet /usr/local/etc/rc.d/. Gepackte Service-Unit-Dateien und Service-Bundles, falls Sie sie erstellen, befinden sich jedoch an verschiedenen Orten.
Weitere Lektüre