78 votes

Comment exécuter un script pendant le démarrage en tant que root

J'avais un script qui active automatiquement mon wifi sans utiliser networkmanager, mais je ne sais pas comment exécuter le script en tant que root pendant que le système démarre. Comment faire pour que le script s'exécute automatiquement pendant le démarrage ?

4voto

Mnementh Points 19831

Créez un fichier texte comme celui-ci dans /etc/cron.d/ :

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

@reboot   root    yourScriptPath

(Vous devez remplacer yourScriptPath avec le chemin vers le script que vous voulez exécuter).

3voto

GChuf Points 334

Attention à l'ajout de script à rc.local - J'étais bloqué sur l'écran d'accueil à cause de ça. En appuyant sur Alt + F1 a révélé ce qui se passait derrière l'écran d'accueil (le script dans l'écran d'accueil). rc.local était en cours).

Je ne pouvais pas m'en sortir.

  • Ctrl + Alt + Del ou
  • Alt + PrtSc + K o
  • Ctrl + Alt + F#

rien ne fonctionne.

J'ai dû démarrer à partir d'une image USB Ubuntu, trouver rc.local je me donne les permissions de le classer et de le supprimer. Je suppose que tu ne devrais pas faire des choses si tu ne sais pas ce que tu fais.

0voto

difficultPizza Points 1

Vous pouvez créer un service sous systemd. De cette façon, votre script sera exécuté en tant que sudo automatiquement.

En supposant que vous avez un script /path/to/script/my_amazing_script.sh que vous voulez exécuter à chaque démarrage en tant que root :

Assurez-vous que seul root peut travailler avec ça :

chmod 0700 /path/to/script/my_amazing_script.sh

Créez ensuite le fichier de service et commencez à le modifier :

sudo nano /etc/systemd/system/run_amazing_script.service

Mettez ça dans le dossier :

[Unit]
Description=Run the best script ever

[Service]
ExecStart=/path/to/script/my_amazing_script.sh

[Install]
WantedBy=multi-user.target

Vérifiez que le service fonctionne bien en l'exécutant une fois :

sudo systemctl start run_amazing_script.service

Vérifiez le journal :

sudo journalctl -u run_amazing_script.service

Si vous êtes satisfait de l'exécution, activez-la pour qu'elle soit exécutée à chaque démarrage :

sudo systemctl enable run_amazing_script.service

Et si vous voulez l'empêcher de s'exécuter à chaque démarrage, vous pouvez le désactiver :

sudo systemctl disable run_amazing_script.service

Note : cette solution est très similaire à ce que YTerle a posté. Mais comme je n'ai pas assez de points, je n'ai pas pu commenter ni upvoter sa réponse.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X