J'établis un quota sur mon serveur Linode exécutant Ubuntu 16.10 et j'obtiens le message d'erreur suivant
Ne peut pas stat () périphérique monté / dev / root: aucun fichier ou répertoire de ce type
Donc, pour résoudre ce problème, j'ai atteint ce fil pour le correctif qui se fait en ajoutant
ln -s /dev/xvda /dev/root
/etc/init.d/quota restart
à la /etc/rc.local
. Mais Ubuntu 16.10 n’utilise rc.local
plus à la place, utilise systemd . Quelle est l'alternative pour rc.local
, Comment puis-je exécuter les commandes ci-dessus au démarrage?
De plus, j'ai activé l'utilisation du service, systemctl enable rc-local.service
mais cela n'a pas fonctionné pour moi. Toute avance serait appréciée.
Réponses:
Intro
Je pense que vous ne devriez pas créer un nouveau service comme suggéré dans le lien de George. Le
rc-local.service
fichier existe déjà dans systemd et le fichier de service suggère que le fichierrc.local
, s'il existe et qu'il est exécutable, est automatiquement extraitmulti-user.target
. Donc pas besoin de recréer ou de forcer quelque chose qui est juste fait d’une autre manière par lesystemd-rc-local-generator
.Une solution
Une solution rapide (je ne sais pas si c'est la manière canonique):
Dans un terminal faire:
Après cela, le système
rc.local
sera appelé au démarrage du système. Insérez ce que vous voulez.Contexte
Si vous le faites dans un terminal:
Vous pouvez voir que le commentaire principal contient des lignes telles que:
Cela indique que, dans ce système, s’il existe un fichier appelé
/etc/rc.local
exécutable, il sera extrait automatiquement dans le fichier multi-utilisateurs.target. Il suffit donc de créer le fichier suivant (sudo touch...
) et de le rendre exécutable (sudo chmod +x ...
).la source
#!/bin/bash
, utilisez#!/bin/sh
sauf si vous avez vraiment besoin de bash dans votre script. Tous les autres scripts système utilisent dash, pas bash, pour des raisons de performances.rc-local
ne permet pas de le commander après une autre unité, n'est-ce pas?J'ai vu cette solution suggérée qui implique l'utilisation de
systemd
ici :Créer un service:
Ajoutez votre code ici:
Créez et assurez-vous qu'il
/etc/rc.local
est exécutable et ajoutez ce code à l'intérieur:Activer le service:
Démarrer le service et vérifier l'état:
Si tout se passe bien, vous pouvez ajouter votre fichier
code
au/etc/rc.local
fichier, puis le redémarrer.Remarque: Testé sur Lubuntu 16.10.
La source:
https://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd
la source
touch "hello"
avant leexit 0
. Le service semble être actif, mais il ne crée aucun fichier dans / etc / dir Fonctionne sur ubuntu 16.04 Arabian 5.31Pour ajouter à la réponse de Jan , contrairement au
rc.local
fichier habituel ,rc-local service
est exécuté non pas après le démarrage de tous les services, mais après la mise en ligne du réseau.Dans certains cas, vous voudrez peut-être exécuter des commandes
rc.local
ultérieurement. Par exemple, je voulais qu'il soit exécuté après lelxd
démarrage.Dans ce cas, vous pouvez éditer
rc-local service
les dépendances de démarrage en créant un fichier de configuration intégré:/etc/systemd/system/rc-local.service.d/override.conf
avec le contenu:Où vous pouvez ajouter un nom d'unité nécessaire (comme j'ai ajouté
lxd.service
)Ne pas oublier
systemctl daemon-reload
après.la source