Script bash

Résolu/Fermé
Aurélie - 9 mai 2005 à 11:24
 fozzie - 13 mai 2005 à 11:54
Bonjour,
est ce que quelqu'un sait PRECISEMENT comment lancer un script bash au lancement du système?
Merci!

8 réponses

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
9 mai 2005 à 11:39
Salut

En regardant le fichier /etc/inittab et tout ce qu'il appel ;)

--Une belette, un lapin !?
C'est pas normal ! :p
0
le problème c'est que je n'ai pas ce fichier!
j'ai essayé de trafiquer avec un .bashrc mais apparemment ça marche pas!
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
9 mai 2005 à 12:16
Ok,
alors si tu commençais par nous dire quel OS tu utilises (Linux/bsd/etc. ?) on situerai sans doute mieux le soucis, ensuite, et tu sur que ton shell par défaut est bash (Dans le cas contraire, un .bashrc ne serait pas lu.)
--Une belette, un lapin !?
C'est pas normal ! :p
0
je pense que tu doit puvoir faire ça en mettant ton script dans le dossier qui correspond à ton niveau de démarrage:

tu met ton script dans rc2.d si tu démarre en niveau 2
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
12 mai 2005 à 16:20
1) Vérifie que tu es sous bash
Si ce n'est pas le cas tu peux passer sous bash avec la commande chsh

2) Vérifie que ton fichier .bashrc est bien à la racine du compte (~) sur lequel tu te loggues. Un .bashrc se lance lorsque tu tapes la commande bash.

3) Si tu veux appeler le .bashrc au moment ou tu te loggues, crée le fichier :
~/.bash_login


Et dedans met :

source .bashrc


Si tu veux que ce soit appliqué à tous les utilisateurs, il te faut modifier le bashrc global qui s'appelle stocké dans /etc (genre /etc/bash/bashrc, /etc/bashrc... ça dépend des distribs)
0
pour lancer n'importe quel programme (y compris un script bash),
il y a 2 méthodes.
Pour ces 2 méthodes, il faut être "root" pour configurer le système.
Sans être root, on ne pourra configurer que sa session, donc on ne pourra que lancer un programme automatiquement à l'ouverture de sa session.

La première :
=========
ajouter une ligne dans le fichier /etc/inittab
par exemple :
xx:2345:respawn:"/chemin/commande"

xx : clé unique dans le fichier,
2345 : les "runlevel" valables pour cette commande
(par exemple : au début du fichier inittab - id:5:initdefault:, il faudra donc au moins le chiffre 5 pour que ça marche)
paramètre suivant :
- respawn : si le programme se plante, le système le relancera automatiquement (message dans la console)
- wait : le programme ne sera lancé qu'une fois

La seconde :
========
créer un shell (toto pour l'exemple) exécutable (+x) qui lance le programme dans le répertoire :
/etc/rc.d/init.d
ensuite, dans le répertoire /etc/rc.d/rc2.d
faire un lien vers le fichier de init.d
exemple : ln -s ../init.d/toto S990toto
S990 veut dire : S pour start (K pour le shutdown - kill)
990 numéro d'ordre d'exécution des programmes dans rc2.d
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
13 mai 2005 à 11:24
En fait le truc qui n'est pas très clair c'est est ce que ton script doit être lancé au démarrage du pc (auquel cas c'est la version avec /etc/inittab ou les /etc/rc.d) ou est ce que c'est quand un utilisateur s'identifie (auquel cas c'est dans le .bashrc qu'on travaille...).

Mais dans les deux cas je pense que tu as les réponses à ton problème avec les posts précédents...
0
pour lancer un programme à l'ouverture de la session,
il ne faut pas mettre ça dans le .bashrc,
sinon, à chaque ouverture de fenêtre, à chaque "su -" ... le programme va être lancé.
Le mieux est de le lancer dans le fichier de définition de l'environnement graphique (.xsession ou autre ... selon les version UNIX, LINUX)
0