Ich benutze Archlinux und habe in diesen Tagen angefangen, systemd auszuprobieren.
Ich habe jedoch festgestellt, dass systemd mein Skript /etc/rc.local nicht lädt.
Wie auf der Wiki-Seite erwähnt, bin ich gelaufen systemctl enable rc-local.service
, aber das hat nicht geholfen.
Der Inhalt meiner Datei /etc/rc.local lautet:
echo -n 120 > /sys/devices/platform/i8042/serio1/speed
echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
iptables --table nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
Irgendwelche Vorschläge?
quelle
/etc/systemd/system/multi-user.target.wants/rc-local.service
und/lib/systemd/system/rc-local.service
systemctl enable rc-local.service
. Wenn Sie weiterhin Probleme haben, senden Sie bitte die Ausgabe vonsystemctl status rc-local.service
.multi-user.target.wants
genau das, was sie ermöglicht .Mit systemd 188-2 beschwert sich systemd darüber, dass kein
[Install]
Abschnitt vorhanden ist und der rc.local-Dienst daher nicht aktiviert werden kann. Könnte bei früheren Versionen der Fall gewesen sein, aber da Arch-Entwickler erst kürzlich angekündigt haben, dass systemd der Standard sein wird, repariere ich mein System.Um dies zu beheben, fügen Sie einfach einen Abschnitt für das Mehrbenutzerziel hinzu in
/etc/systemd/system/rc-local.service
:Erstellen Sie das
/etc/rc.local
Skript und machen Sie es ausführbar mitchmod +x /etc/rc.local
quelle
rc-local.service
nie ein Dienst über aktiviert wurde,systemctl enable
sondern seit 2011 ein Dienst, der von einem Generator automatisch aktiviert wurde . Wie unter unix.stackexchange.com/a/471871/5132 erläutert, aktiviert Arch Linux jedoch nicht die Abwärtskompatibilitätsoptionen in systemd, die den Generator überhaupt erst bereitstellen.Pkgfile (auf meinem System) sagt:
Dieses Paket installiert andere Dinge, die Sie vielleicht nicht wollen, aber Sie können es deaktivieren. Siehe auch: https://wiki.archlinux.org/index.php/Systemd#The_initscripts-systemd_package
quelle
Vergessen Sie nicht, rc.local ausführbar zu machen - sonst wird es von der Kompatibilitätsschicht nicht ausgeführt! In den oben aufgeführten Beispielen würden Sie chmod a + x ausführen, um die Datei rc.local ausführbar zu machen. Wie folgt:
Ich würde denken, ein weiteres mögliches Problem ist der Speicherort Ihres rc.local-Skripts! Wenn Sie die Kompatibilität zu systemd noch nicht hinzugefügt haben (die eingebaut sein sollte - und anscheinend bereits erwähnt wurde), müssen Sie möglicherweise den Speicherort Ihrer Dateien überprüfen ... Auf meinem Betriebssystem habe ich rc-local Unter /etc/rc.d/rc.local habe ich also Folgendes ausgeführt:
quelle
systemd
Servicedatei ausführbar zu machen , wie in Ihrem ersten Codefragment gezeigt. Unter Arch Linux lautet der Dateipfad/etc/rc.local
- möglicherweise ist der Inhalt dersystemd
Servicedatei falsch.Zwei häufige Fallstricke:
Vergessen Sie nicht,
/etc/rc.d/rc.local
ausführbar zu machen . Sie können verwendenum es ausführbar zu machen.
Vergessen Sie nicht, eine
#!/bin/sh
Zeile in die erste Zeile von zu setzen/etc/rc.d/rc.local
. So sollten die Dinge aussehen:Wenn Sie keine ähnliche Ausgabe erhalten, bearbeiten Sie diese
/etc/rc.d/rc.local
, um ganz oben eine Zeile mit just hinzuzufügen#!/bin/sh
.quelle
Wenn Sie
/etc/rc.local
eine ausführbare Datei haben, wird diese vonsystemd-rc-local-generator
/ in den Startvorgang gezogenrc-local.service
.Zumindest
/etc/rc.local
ist dies der Standardpfad, der jedoch von der Distribution festgelegt wird. Weil es hauptsächlich aus Gründen der Abwärtskompatibilität ist und verschiedene Distributionen unterschiedliche Pfade verwendeten. ZB auf Fedora ist der Weg/etc/rc.d/rc.local
. Sie können den Pfad wie folgt überprüfen:Es scheint, dass dies nicht sehr bekannt ist. Es gibt mehrere Beiträge, die eine frühere Version der Datei zeigen, die keinen solchen Kommentar enthält.
quelle