Executer Script au démarrage en tant que Root
Résolu/Fermé
A voir également:
- Lancer un script au démarrage ubuntu
- Pc lent au démarrage - Guide
- Script vidéo youtube - Guide
- Lancer un programme au demarrage - Guide
- Reinitialiser pc au demarrage - Guide
- Forcer demarrage pc - Guide
3 réponses
debianhunter
Messages postés
119
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
11 juillet 2010
24
Modifié par debianhunter le 6/07/2010 à 11:47
Modifié par debianhunter le 6/07/2010 à 11:47
Salut,
Je ne connais pas PartImage, donc je ne proposerai une solution que pour la premiere partie de la question (lancer une application au demarrage).
Les systemes base sur Debian (dont Ubuntu fait partie), la sequence de demarrage est heritee de System V. Il faut donc pour commencer ecrire un script qui permettra de demarrer et d'arreter le processus et le placer dans /etc/init.d. Par exemple, le fichier /etc/init.d/myPartImage :
Attention: les commentaires en debut de fichiers sont importants ! Ils indiquent le runlevel dans lequel on va arreter/demarrer le service.
L'exemple donne marche pour Debian ; pour Ubuntu le mieux est de regarder un script dans /etc/init.d pour l'equivalent des fonctions log_daemon_msg et log_success_msg.
Puis on rend ce script executable:
Ce script ne sera pas appele au demarrage... pour l'instant ! Pour un runlevel #, il faut un lien symbolique dans le repertoire /etc/rc#.d correspondant qui pointe vers le script que l'on vient d'ecrire. Le nom du lien symbolique indique au process init s'il doit appeler le script avec le parametre start (demarrage du service) ou stop (arret du service), ainsi que l'ordre dans lequel se script doit etre execute. On retrouvera donc dans les repertoires /etc/rc#.d/ des liens symboliques dont le nom est K##myscriptName (resp. S##myscriptName) pour forcer l'arret (resp. le demarrage) du service en position ##.
Heureusement, il y a une commande qui fait tout ca pour nous:
On peut forcer l'ordre de demarrage et d'arret en ajoutant le numero de demarrage et le numero d'arret: update-rc.d myPartImage defaults 30 45
Je ne connais pas PartImage, donc je ne proposerai une solution que pour la premiere partie de la question (lancer une application au demarrage).
Les systemes base sur Debian (dont Ubuntu fait partie), la sequence de demarrage est heritee de System V. Il faut donc pour commencer ecrire un script qui permettra de demarrer et d'arreter le processus et le placer dans /etc/init.d. Par exemple, le fichier /etc/init.d/myPartImage :
#! /bin/sh -e ### BEGIN INIT INFO # Provides: myPartImage # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts PartImage on boot # Description: xxxxxxxxxx ### END INIT INFO . /lib/lsb/init-functions case "$1" in start) log_daemon_msg "Starting PartImage" "PartImage" # inserer du code pour demarrer PartImage log_success_msg ;; stop) log_daemon_msg "Stopping PartImage" "PartImage" # inserer du code pour arreter PartImage log_success_msg ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0
Attention: les commentaires en debut de fichiers sont importants ! Ils indiquent le runlevel dans lequel on va arreter/demarrer le service.
L'exemple donne marche pour Debian ; pour Ubuntu le mieux est de regarder un script dans /etc/init.d pour l'equivalent des fonctions log_daemon_msg et log_success_msg.
Puis on rend ce script executable:
chmod +x myPartImage
Ce script ne sera pas appele au demarrage... pour l'instant ! Pour un runlevel #, il faut un lien symbolique dans le repertoire /etc/rc#.d correspondant qui pointe vers le script que l'on vient d'ecrire. Le nom du lien symbolique indique au process init s'il doit appeler le script avec le parametre start (demarrage du service) ou stop (arret du service), ainsi que l'ordre dans lequel se script doit etre execute. On retrouvera donc dans les repertoires /etc/rc#.d/ des liens symboliques dont le nom est K##myscriptName (resp. S##myscriptName) pour forcer l'arret (resp. le demarrage) du service en position ##.
Heureusement, il y a une commande qui fait tout ca pour nous:
cd /etc/init.d update-rc.d myPartImage defaults
On peut forcer l'ordre de demarrage et d'arret en ajoutant le numero de demarrage et le numero d'arret: update-rc.d myPartImage defaults 30 45
Merci pour cette réponse !
Mais les différents scripts lancé lors de ce démarrage, c'est comme si ils étaient lancé en tant que root ? Ca m'arrangerai beaucoup :D
Mais les différents scripts lancé lors de ce démarrage, c'est comme si ils étaient lancé en tant que root ? Ca m'arrangerai beaucoup :D
debianhunter
Messages postés
119
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
11 juillet 2010
24
30 juin 2010 à 21:07
30 juin 2010 à 21:07
Oui, le script est lance en tant que root.