web-dev-qa-db-fra.com

Comment exécuter un script au démarrage en tant que superutilisateur?

Je veux exécuter une commande au démarrage sur mon serveur Ubuntu. Est-ce que quelqu'un sait comment faire ça? Est-ce que /etc/rc.local est exécuté en tant que superutilisateur? Toute aide serait appréciée. Merci!

4
Qwintus

/etc/rc.local sera exécuté en tant que root.

La plupart du processus init est exécuté en tant que root ou démarre de cette façon.

9
coteyr

Vous pouvez faire ceci à quelques endroits:

/etc/init.d (et ensuite un lien vers /etc/rc[runlevel].d - en général 2) fonctionne plutôt bien - vous pouvez donc spécifier les bits de démarrage et d’arrêt.

C'est un peu une façon ancienne (bien que très facile). Vous pouvez également faire quelque chose avec Upstart. Regardez cette page (regardez la section "Rédaction de travaux").

Le gros piège - le chemin n'est normalement pas tout à fait ce à quoi vous vous attendiez. Je suggèrerais donc de lancer quelque chose comme "echo $ PATH>/init_path" à partir de n'importe quel script en premier pour voir si vous avez un problème (vérifiez/init_path et voyez ce qu'il y a dedans .. parfaitement sûr de supprimer ce fichier). Bien qu'il soit facile de spécifier des chemins dans votre script, cela vaut la peine de définir la variable PATH en conséquence, car tout ce qui est exécuté à partir de n'importe quel script peut également avoir besoin de quelque chose dans PATH.

0
Nevyn