J'utilise Archlinux et j'ai commencé à essayer systemd ces jours-ci.
Cependant, j'ai trouvé que systemd ne charge pas mon script /etc/rc.local.
Comme mentionné dans la page Wiki, j'ai couru systemctl enable rc-local.service
, mais cela n'a pas aidé.
Le contenu de mon fichier /etc/rc.local est:
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
Aucune suggestion?
arch-linux
Felix Yan
la source
la source
/etc/systemd/system/multi-user.target.wants/rc-local.service
et/lib/systemd/system/rc-local.service
systemctl enable rc-local.service
. Si vous continuez à rencontrer des problèmes, veuillez publier la sortie desystemctl status rc-local.service
.multi-user.target.wants
est exactement ce qui le permet .Avec systemd 188-2, systemd se plaint de ne pas avoir de
[Install]
section et comme tel de ne pas pouvoir activer le service rc.local. Cela aurait pu être le cas avec les versions antérieures, mais depuis que les développeurs Arch n'ont annoncé que récemment systemd deviendra la valeur par défaut que je corrige mon système.Pour résoudre ce problème, ajoutez simplement une section pour la cible multi-utilisateurs dans
/etc/systemd/system/rc-local.service
:Créez le
/etc/rc.local
script et rendez-le exécutable avecchmod +x /etc/rc.local
la source
rc-local.service
n'a jamais été un service qui a été activé via,systemctl enable
mais depuis 2011 a été un service auto-activé par un générateur . Cependant, Arch Linux, comme expliqué sur unix.stackexchange.com/a/471871/5132 , n'active pas les options de compatibilité descendante dans systemd qui fournissent le générateur en premier lieu.Pkgfile (sur mon système) dit:
Ce package installe d'autres choses que vous ne souhaitez peut-être pas, mais vous pouvez le désactiver. Voir également: https://wiki.archlinux.org/index.php/Systemd#The_initscripts-systemd_package
la source
N'oubliez pas de rendre exécutable rc.local - sinon la couche de compatibilité ne l'exécutera pas! Dans les exemples ci-dessus qui sont répertoriés - vous exécuteriez chmod a + x afin de rendre le fichier rc.local exécutable. Comme suit:
Je pense qu'un autre problème possible est l'emplacement de votre script rc.local! Si vous n'avez pas encore ajouté la compatibilité à systemd (qui devrait être intégré - et semble être déjà mentionné par ex-mention), vous devrez peut-être vérifier à nouveau l'emplacement de vos fichiers ... Sur mon système d'exploitation, j'ai rc-local à /etc/rc.d/rc.local, j'ai donc exécuté ce qui suit:
la source
systemd
fichier de service exécutable, comme indiqué dans votre premier extrait de code. De plus, sur Arch Linux, le chemin du fichier est/etc/rc.local
- peut-être que le contenu dusystemd
fichier de service est incorrect.Deux pièges courants:
N'oubliez pas de rendre
/etc/rc.d/rc.local
exécutable. Vous pouvez utiliserpour le rendre exécutable.
N'oubliez pas de mettre une
#!/bin/sh
ligne dans la première ligne de/etc/rc.d/rc.local
. Voici à quoi les choses devraient ressembler:Si vous n'obtenez pas de sortie similaire, modifiez
/etc/rc.d/rc.local
pour ajouter une ligne tout en haut contenant juste#!/bin/sh
.la source
Si vous avez
/etc/rc.local
un fichier exécutable, il sera tiré dans le processus de démarrage parsystemd-rc-local-generator
/rc-local.service
.C'est au moins
/etc/rc.local
le chemin par défaut qu'il utilise, mais il est défini par la distribution. Parce que c'est principalement pour la compatibilité descendante, et différentes distributions utilisaient des chemins différents. Par exemple sur Fedora, le chemin est/etc/rc.d/rc.local
. Vous pouvez vérifier le chemin d'accès comme suit:Il semble que ce ne soit pas très bien connu. Il y a plusieurs articles qui montrent une version précédente du fichier, qui n'a pas un tel commentaire.
la source