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.local
ist 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 rc
Klon von van Smoorenburg System 5 war .
Die Verwendung /etc/rc.local
kann schrecklich schief gehen. Die Leute waren überrascht über die Tatsache, dass systemd nicht rc.local
ganz 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.local
Erwartung der alten Art und Weise, Dinge zu tun, eingerichtet haben, ist dann vollständig durch die Gleichen von neuen rückgängig gemacht udev
Regeln, Networkmanager systemd-logind
, systemd-resolved
oder 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-generator
Generator . 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 - rc
Klon, gefolgt rc.local
dann 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- rc
und Upstart-Systemen musste statt der Verwendung ein ordnungsgemäßes van Smoorenburg- rc
Skript oder eine Upstart- Jobdatei erstellt werden rc.local
. Sogar das Handbuch von FreeBSD stellt fest, dass man heutzutage ein richtiges Mewburn- rc
Skript erstellt, anstatt es zu verwenden /etc/rc.local
. Mewburn rc
wurde 2000 von NetBSD 1.5 eingeführt.
/etc/rc.local
stammt 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/inittab
und 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-manager
und system-control
ein /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 rc
unter 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