J'ai un script que j'aimerais exécuter au démarrage de mon système et je l'ai mis dans /etc/rc.local
mais ça ne marche pas. Comment puis-je faire en sorte qu'il s'exécute au démarrage ?
Réponses
Trop de publicités?Pouvez-vous exécuter votre script manuellement ; si non, c'est un problème avec ce script, sinon regardez plutôt à rc.local
. Si ce script doit être exécuté en tant que root
, sudo
doit être utilisé pour l'exécuter manuellement.
-
Assurer
/etc/rc.local
et le script qu'il appelle, est exécutable :ls -l /etc/rc.local -rwxr-xr-x 1 root root 419 2010-08-27 11:26 /etc/rc.local
-
Assurer
rc.local
a une ligne shebang, qui est le défaut :head -n1 /etc/rc.local #!/bin/sh -e
Dans mon cas, aucune des instructions n'était une solution parfaite, alors essayez celle-ci, détaillée :
-
Sauvegarder tout le code exécuté dans un fichier texte séparé avec un nom arbitraire, tel que
foo.sh
-
Ajouter
#!/bin/sh
comme première ligne dansfoo.sh
en l'exécutant viasudo foo.sh
pour vérifier les erreurs -
で
/etc/rc.local
placez le chemin d'accès complet àfoo.sh
précédé desh
avantexit 0
:sh '/path/to/your/script/foo.sh'
-
Vérifiez la première ligne dans
/etc/rc.local
es#!/bin/sh -e
-
Assurer
/etc/rc.local
est exécutable :sudo chown root /etc/rc.local sudo chmod 755 /etc/rc.local
-
Vérifiez que tout fonctionne bien :
sudo /etc/init.d/rc.local start
-
Redémarrer pour tester
Sur les versions plus récentes d'Ubuntu systemd
est utilisé et /etc/rc.local
n'est pas toujours chargé par défaut.
Vérifiez si le service Compatibilité est chargé avec
systemctl status rc-local.service
S'il contient active (sortie) votre réglage semble correct et vous pourriez avoir une autre erreur dans votre /etc/rc.local
(il peut s'agir d'une commande qui échoue par exemple).