Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/07/2007, à 15:03

peutch

[Résolu] Script à exécuter au démarrage (super utilisateur)

Bonjour,

J'ai une question, je sens qu'elle n'est pas très compliquée, mais je n'y connais rien (je suis assez nouveau sur Ubuntu).

Alors, j'utilise Ubuntu 6.10. sur lequel j'ai rajouté kde-core pour utilser KDE comme bureau.

Je partage ma connexion Internet avec un autre ordi et notre install doit être un peu pourrie parce qu'à chaque fois que je démarre mon ordi, je dois demander un renouvellement de mon adresse sur le réseau. Donc à chaque démarrage, je dois taper dans la console :

sudo dhclient

C'est sympa, mais j'aimerais pouvoir automatiser tout ça. Donc j'aimerais créer un script qui lance ça tout seul au démarrage de mon ordi.
Mais :
1°/ Je n'ai jamais créé de script.
2°/ Je ne veux pas rentrer mon mot de passe en clair dans le script (et même si je voulais je ne saurais pas comment faire).
3°/ Si possible, j'aimerais que le script s'exécute sans faire apparaître la console.
4°/ Je ne veux pas que le lancement du script dépende de KDE ou Gnome (parce que j'utilise parfois Gnome).
5°/ Je voudrais que le script se lance pour tous les utilisateurs de mon ordi.

Donc si vous avez une idée, ça  me dépannerait bien ! Merci à tous !

Peutch

Dernière modification par peutch (Le 12/07/2007, à 15:55)

Hors ligne

#2 Le 11/07/2007, à 15:21

pjv

Re : [Résolu] Script à exécuter au démarrage (super utilisateur)

Je n'ai pas vérifié complètement, mais les scripts de démarrage se trouvent sous /etc/rcX.d (avec X le run level) et puis sous /etc/init.d.
Tu peux essayer de mettre ton script sous /etc/rc6.d ou bien dans /etc/init.d
A cet endroit, ils s'exécutent en root normalement.

Hors ligne

#3 Le 11/07/2007, à 16:05

peutch

Re : [Résolu] Script à exécuter au démarrage (super utilisateur)

Merci pour ta réponse.

J'ai créé un script "renouvellement-dhclient.sh" dans /etc/init.d/ avec le texte suivant :

#!/bin/sh
dhclient

J'ai cru lire quelque part qu'il fallait que je mette mon script dans un des /etc/rcX.d/ (je pensais utiliser rc3.d) mais j'ai pas tout capté. J'ai vu qu'on pouvait utilisé un utilitaire update-rc.d, mais je ne sais pas comment m'en servir...

Est-ce que ça suffit si je le laisse dans /etc/init.d/ ou faut-il que je fasse tout le schbim avec /rc3.d/ ?

Merci !

Hors ligne

#4 Le 11/07/2007, à 16:11

peutch

Re : [Résolu] Script à exécuter au démarrage (super utilisateur)

Bon ben ça ne marche pas si je me contente de mettre le script dans /etc/init.d/

Déjà le script est-il bon, ou faut-il que j'écrive "sudo dhclient" ?

Ensuite, comment faire pour que le script soit lancé ? Il n'a pas l'air d'être lancé... (ou peut-être trop tôt ?)

Merci !

Hors ligne

#5 Le 12/07/2007, à 10:56

peutch

Re : [Résolu] Script à exécuter au démarrage (super utilisateur)

Up!

Chivoupléch!!!!

Je suis sûr que y'en a qui savent comment exécuter un chtit script au démarrage, ça doit pas être si compliqué que ça !

Merci à tous !

Peutch

Hors ligne

#6 Le 12/07/2007, à 11:19

valAa

Re : [Résolu] Script à exécuter au démarrage (super utilisateur)

salut,

la commande

man update-rc.d

t'en dira un peu plus.

par exemple

update-rc.d ton_script defaults

ça peut aussi se faire à la main, pour cela il faut faire un lien symbolique du script (qui est dans /etc/init.d) dans /etc/rcX.d
ce script devra s'appeler SXXton_script, avec XX=priorité (par exemple S99ton_script).

mais la commande update-rc.d fait ça très bien.

Dernière modification par valAa (Le 12/07/2007, à 16:01)

Hors ligne

#7 Le 12/07/2007, à 11:24

fanch317

Re : [Résolu] Script à exécuter au démarrage (super utilisateur)

A la main, cela equivaut à créer un lien symbolique dans les levels dont tu souhaite qu'il se lance (S = start ; 20 = ordre) :
ln -s  /etc/init.d/MONSCRIPT  /etc/rc2.d/S20MONSCRIPT

Je ne te conseil pas d'utiliser cette solution de script script rc au demarrage. Il existe une partie network qui s'occupe que de ça.
Regarde du coté de /etc/network/interface
Voici un exemple d'une interface utilisant le dhcp

iface ath0 inet dhcp
allow-hotplug ath0
auto ath0

Fanch

Dernière modification par fanch317 (Le 12/07/2007, à 11:24)

Hors ligne

#8 Le 12/07/2007, à 15:54

peutch

Re : [Résolu] Script à exécuter au démarrage (super utilisateur)

Merci à tous les trois ! (et à tous ceux qui se sont penchés sur le problème).

Alors effectivement mon problème de connexion réseau a été plus simplement résolu en ajoutant une ligne :

auth eth0

dans mon fichier /etc/network/interfaces... Donc bon, ma solution de script était un peu une solution de gros sale.

Mais qui fonctionnait !
Je remets ici l'astuce pour le script (à condition que vous ne l'utilisiez pas aussi mal que moi !:rolleyes:)

Donc j'ai créé dans /etc/init.d/ un script toto.sh

Ensuite, j'ai fait dans la console :

update-rc.d toto.sh start 95 2 3 4 5 .

pour que le script se lance au démarrage (aux "runlevels" 2 3 4 ou 5) de mon ordi et plutôt vers la fin du démarrage (priorité 95 sur 100). Et paf, ça marchait nickel.

Donc bref, il faut faire un script dans /etc/init.d/ puis utiliser astucieusement la commande "update-rc.d" en fonction du type de script et de son utilsation.

Je passe le sujet à résolu.

Hors ligne