Lancer un script au démarrage
Fermé
Zempachi
Messages postés
7472
Date d'inscription
vendredi 14 octobre 2005
Statut
Contributeur
Dernière intervention
5 juin 2020
-
27 janv. 2006 à 19:39
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 18 sept. 2011 à 21:51
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 18 sept. 2011 à 21:51
A voir également:
- Lancer un script au démarrage
- Pc lent au démarrage - Guide
- Reinitialiser pc au demarrage - Guide
- Qu'est ce qui se lance au démarrage de l'ordinateur - Guide
- Script vidéo youtube - Guide
- Forcer demarrage pc - Guide
15 réponses
dindoun
Messages postés
1028
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
17 février 2017
135
20 juin 2009 à 18:47
20 juin 2009 à 18:47
salut,
je confirme pour update-rc.d, c'est vraiment la méthode la plus claire, à condition de créer un fichier normal
contenant start, stop ... exemple
créer le fichier /etc/init.d/camorama contenant :
ensuite sudo chown root:root /etc/init.d/camorama && sudo chmod 755 /etc/init.d/camorama && update-rc.d /etc/init.d/camorama defaults
ce qui va créer les liens dans /etc/rc?.d
et voilà
voir aussi le fichier /etc/init.d/skeleton qui est un squeletet pour les ficheirs de démarrage
je confirme pour update-rc.d, c'est vraiment la méthode la plus claire, à condition de créer un fichier normal
contenant start, stop ... exemple
créer le fichier /etc/init.d/camorama contenant :
#! /bin/bash PATH=/bin:/usr/bin:/sbin:/usr/sbin DAEMON=/usr/bin/camorama #mettre ici votre programme ( exempel camorama) test -x $DAEMON || exit 0 case "$1" in start) #ici on écrit le machin pour démarrer le programme genre /usr/bin/camorama ;; stop) killall camorama #ou rien ;; force-reload|restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload|status}" exit 1 ;; esac exit 0
ensuite sudo chown root:root /etc/init.d/camorama && sudo chmod 755 /etc/init.d/camorama && update-rc.d /etc/init.d/camorama defaults
ce qui va créer les liens dans /etc/rc?.d
et voilà
voir aussi le fichier /etc/init.d/skeleton qui est un squeletet pour les ficheirs de démarrage
dindoun
Messages postés
1028
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
17 février 2017
135
3 mars 2008 à 15:26
3 mars 2008 à 15:26
sous ubuntu :
au démarrage les fichiers démarrés sont ceux de /etc/rc2.d qui sont des liens vers /etc/init.d
DONC
fais ton fichier monfichier dans
/etc/init.d
fais un lien
ln -s /etc/init.d/monfichier /etc/rc2.d/S88monfichier
c est bon
au démarrage les fichiers démarrés sont ceux de /etc/rc2.d qui sont des liens vers /etc/init.d
DONC
fais ton fichier monfichier dans
/etc/init.d
fais un lien
ln -s /etc/init.d/monfichier /etc/rc2.d/S88monfichier
c est bon
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 janv. 2006 à 19:55
27 janv. 2006 à 19:55
Re,
Je crois que tu dois créer le fichier rc.local
Voilà ce que j'ai trouvé sur http://loli.fsa.ulaval.ca/mediawiki/index.php/Ubuntu
Je crois que tu dois créer le fichier rc.local
Voilà ce que j'ai trouvé sur http://loli.fsa.ulaval.ca/mediawiki/index.php/Ubuntu
R: Ubuntu cherche à synchroniser l'heure de votre appareil à chaque démarrage avec un serveur de temps (heure) ou ntp. Le blocage survient lorsque votre système cherche à se brancher alors que votre connexion Internet n'est pas encore activée... Une façon élégante de régler le problème est d'enlever le lien qui lance le protocole ntp et de l'appeler à la toute fin de l'amorce de l'ordi dans un fichier rc.local que nous allons créer.
1. déterminez le niveau par défaut (runlevel)
cat /etc/inittab | grep initdefault
la réponse sera sans doute 2
2. créez le fichier rc.local
sudo touch /etc/init.d/rc.local
3. éditez ses droits
chmod 774 /etc/init.d/rc.local
4. permettre l'exécution du fichier rc.local en dernier
sudo ln -s /etc/init.d/rc.local /etc/rc2.d/S99local
le 99 assure que le fichier sera le dernier processus exécuté lors du démarrage
5. éditez le fichier rc.local pour y mettre les commandes que l'on veut voir s'exécuter en dernier
sudo gedit /etc/init.d/rc.local
et mettez-y par exemple la ligne suivante :
/etc/init.d/ntpdate start
6. enfin nous allons supprimer le lien qui fait appel à ntp trop tôt :
sudo rm -f /etc/rcS.d/S75ntp
Au prochain redémarrage de votre ordi l'heure sera correctement ajustée après le lancement de votre connexion Internet.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
27 janv. 2006 à 20:07
27 janv. 2006 à 20:07
Salut,
Voir aussi : http://www.debian.org/doc/manuals/reference/ch-system.fr.html#s-boot
Voir aussi : http://www.debian.org/doc/manuals/reference/ch-system.fr.html#s-boot
Zempachi
Messages postés
7472
Date d'inscription
vendredi 14 octobre 2005
Statut
Contributeur
Dernière intervention
5 juin 2020
906
27 janv. 2006 à 21:02
27 janv. 2006 à 21:02
Salut, jipicy
Cette methode qui revient à celle donnée par lami20j me pose un probleme.
En fait, ce que je veux lancer ce n'est pas un service qu'on puisse lancer ou pas {start stop restart}. En fait, j'ai besoin de créer un device via mknod au demarrage et donc je trouve cela un peu trop contraignant de devoir passer par les init & rc. Le coup du .bashrc est pas mal mais pose le probleme des droits root.
Donc, je prends la methode de lami20j sans passer par le skeleton avec le parametrage pour les {start stop restart}.
Cette methode qui revient à celle donnée par lami20j me pose un probleme.
En fait, ce que je veux lancer ce n'est pas un service qu'on puisse lancer ou pas {start stop restart}. En fait, j'ai besoin de créer un device via mknod au demarrage et donc je trouve cela un peu trop contraignant de devoir passer par les init & rc. Le coup du .bashrc est pas mal mais pose le probleme des droits root.
Donc, je prends la methode de lami20j sans passer par le skeleton avec le parametrage pour les {start stop restart}.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dindoun
Messages postés
1028
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
17 février 2017
135
6 août 2009 à 12:03
6 août 2009 à 12:03
salut
mettre un programme sous /sbin est absurde, mets le sous /usr/bin
ensuite assure toi des droits de tous tes fichiers
crée un log pour tes sorties de vérification
test le sans le démarrage système ( il est possible qu il soit lancé AVANT l'initialisation des paths)
fais un essai avec des adresses absolues au cas où
sinon ca ressemble plus à un pb de programmation qu'à un pb de démarrage
regarde quand même avec
quant au jeu de mot bah je vais reprendre un café
mettre un programme sous /sbin est absurde, mets le sous /usr/bin
ensuite assure toi des droits de tous tes fichiers
crée un log pour tes sorties de vérification
test le sans le démarrage système ( il est possible qu il soit lancé AVANT l'initialisation des paths)
fais un essai avec des adresses absolues au cas où
sinon ca ressemble plus à un pb de programmation qu'à un pb de démarrage
regarde quand même avec
dmesg|moreou
dmesg |tailau cas où
quant au jeu de mot bah je vais reprendre un café
Mon programme fonctionne lorsque je le lance à la main, c'est déjà un point à prendre en compte. L'erreur doit surement venir des droits sur le fichier conf.ini. J'ai mis le programme sous sbin car c'est la qu'il va le chercher si l'on suit le squelette dans /etc/init.d/skeleton, mais je vais faire comme tu l'a dis. Je débute carrément sous linux, donc j'ai encore du chemin à faire.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 janv. 2006 à 19:42
27 janv. 2006 à 19:42
Salut,
tu as essayé avec/etc/rc.local (sous fedora c'est le lien pour /etc/rc.d/rc.local )
rc.local c'est le dernier script éxecuté par init.
tu as essayé avec/etc/rc.local (sous fedora c'est le lien pour /etc/rc.d/rc.local )
rc.local c'est le dernier script éxecuté par init.
Zempachi
Messages postés
7472
Date d'inscription
vendredi 14 octobre 2005
Statut
Contributeur
Dernière intervention
5 juin 2020
906
27 janv. 2006 à 19:53
27 janv. 2006 à 19:53
J'ai pas ce fichier... je suis sous ubuntu.
beh apres un petite rechche sur CCM je crois que je vais passer par l'edition d'un script sous "/etc/init.d/rcX.d/"...
beh apres un petite rechche sur CCM je crois que je vais passer par l'edition d'un script sous "/etc/init.d/rcX.d/"...
Bonjour,
Désolé de déterrer le topic mais je serai curieux de connaître ce jeu de mot, on peut m'expliquer svp ??? :)
Désolé de déterrer le topic mais je serai curieux de connaître ce jeu de mot, on peut m'expliquer svp ??? :)
voilà je suis étudiante en bts informatique et j'aimerais avoir les étapes (bien détaillées de préférence) concernant les scripts de démarrage. Nous devons lancer un programme au démarrage d'UBUNTU. Merci d'avance pour vos réponses!
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
3 mars 2008 à 13:26
3 mars 2008 à 13:26
Lancer un programme automatiquement au login sous Ubuntu ;-))
merci bcp jipicy, le seul blèm c'est qu'il faut que je passe par ligne de commande (c'est imposé à l'examen) et donc ta solution est génial mais trop paresseuse selon mon prof tu n'aurais pas autre chose à me proposer par ligne de commande????? encore merci :)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
3 mars 2008 à 13:41
3 mars 2008 à 13:41
Ben la solution donnée par "lami20j" au post #3 ;-))
kokzi
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
3 mars 2008 à 13:42
3 mars 2008 à 13:42
merci bcp j'espère que ça sera pas trop dur à comprendre lol!
bonjour, j'ai un probleme,
je cherche a lancer camorama au demrrage dans un script seulement il ne se lance pas.
si je le lance en ligne de commande ca fonctionne mais en rebootant, rien ne s'affiche une fois mon mdp validé
je suis sous ubuntu.
su vous pouviez meder, merci
je cherche a lancer camorama au demrrage dans un script seulement il ne se lance pas.
si je le lance en ligne de commande ca fonctionne mais en rebootant, rien ne s'affiche une fois mon mdp validé
je suis sous ubuntu.
su vous pouviez meder, merci
Bonjour,
j'avais le même problème et j'ai suivis les instructions de dindoun, cependant le programme que je veux démarrer à besoin de lire dans un fichier de configuration. J'ai placé ce fichier ("conf.ini" ) dans le dossier /usr/sbin/ avec mon programme, et dans mon programme j'ouvre le fichier "conf.ini" avec un fopen, mais il me semble qu'il n'est pas réellement ouvert et donc la configuration initiale donne n'importe quoi...
En plus de ça les printf que j'ai fait à l'interieur du programme ne s'affiche pas (logique, sinon on ne pourra pas se servir du terminal à coté) mais est-il possible que je les affiches à des fins de Debug?
Merci d'avance.
Alk
j'avais le même problème et j'ai suivis les instructions de dindoun, cependant le programme que je veux démarrer à besoin de lire dans un fichier de configuration. J'ai placé ce fichier ("conf.ini" ) dans le dossier /usr/sbin/ avec mon programme, et dans mon programme j'ouvre le fichier "conf.ini" avec un fopen, mais il me semble qu'il n'est pas réellement ouvert et donc la configuration initiale donne n'importe quoi...
En plus de ça les printf que j'ai fait à l'interieur du programme ne s'affiche pas (logique, sinon on ne pourra pas se servir du terminal à coté) mais est-il possible que je les affiches à des fins de Debug?
Merci d'avance.
Alk
dindoun
Messages postés
1028
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
17 février 2017
135
6 août 2009 à 13:52
6 août 2009 à 13:52
disons que sbin est l'endroit où on trouve les programmes système importants et /usr
/bin les autres et pis y a aussi /opt /usr/bin/local
en fait j avais lu /sbin pas /usr/sbin ( qui contient les programmes systèmes d importance seconde par exemple mount est sur sbin puisqu'il permet l'accès aux disques alors que sshd qui est un serveur sécurisé est sur /usr/sbin )
sinon :
comprends bien que les programmes du démarrage sont des programmes de l'utilisateur root
donc si tu as créés tes programmes ( ou copiés ) sous ton utilisateur normal ils ne peuvent pas être exécutés par root sans ajout spécial
ou un changement d'utilisateur :
un petit man chmod et man chown peut être utile
d'un point de vue général, si tu places un programme dans un répertoire il doit avoir les mêmes droits que les autres programes du répertorie ça garde la logique et permet d'éviter les erreurs
par exempel dans /usr/sbin :
tous les fichiers sont
-rwxr-xr-x 1 root root soit chown root.root et chmod 755 ( r=4,w=2,x=1)
sauf quelques uns qui sont
-rwsr-xr-x 1 root root soit chown root.root et chmod 4755 ( r=4,w=2,x=1)
le s signifie que le programme est excutable x ( sinon on aurait S ) et qu'il est toujours exécuté comme si c'était le propriétaire du programme qui le lancait
/bin les autres et pis y a aussi /opt /usr/bin/local
en fait j avais lu /sbin pas /usr/sbin ( qui contient les programmes systèmes d importance seconde par exemple mount est sur sbin puisqu'il permet l'accès aux disques alors que sshd qui est un serveur sécurisé est sur /usr/sbin )
pour les autorisations : un chmod 777 est indispensable pour tes tests ls -al pour voir les autorisations chmod 777 fichier chmod 777 répertoire chmod -R 777 répertoire ( et ses sous rép )
sinon :
comprends bien que les programmes du démarrage sont des programmes de l'utilisateur root
donc si tu as créés tes programmes ( ou copiés ) sous ton utilisateur normal ils ne peuvent pas être exécutés par root sans ajout spécial
ou un changement d'utilisateur :
chown root.root [fichier|rép]
un petit man chmod et man chown peut être utile
d'un point de vue général, si tu places un programme dans un répertoire il doit avoir les mêmes droits que les autres programes du répertorie ça garde la logique et permet d'éviter les erreurs
par exempel dans /usr/sbin :
ls -al $(find /usr/sbin/ -type f)
tous les fichiers sont
-rwxr-xr-x 1 root root soit chown root.root et chmod 755 ( r=4,w=2,x=1)
sauf quelques uns qui sont
-rwsr-xr-x 1 root root soit chown root.root et chmod 4755 ( r=4,w=2,x=1)
le s signifie que le programme est excutable x ( sinon on aurait S ) et qu'il est toujours exécuté comme si c'était le propriétaire du programme qui le lancait
Zempachi
Messages postés
7472
Date d'inscription
vendredi 14 octobre 2005
Statut
Contributeur
Dernière intervention
5 juin 2020
906
27 janv. 2006 à 20:06
27 janv. 2006 à 20:06
Ok merci l'ami ! <-jeu de mot crypté sur 128 bit!!! ; )
18 sept. 2011 à 21:51
Ceci est très clair, merci pour le petit tuto.
J'aurais quand même une question supplémentaire : mon script doit s'exécuter avec des droits d'administrateur. Quand je le fais à la main, c'est avec sudo ou gksudo, mais je n'ai pas envie d'avoir un terminal qui me demande un mot de passe au démarrage du mon PC... Y a-t-il un moyen de lancer au démarrage un script en root ?
Xavier