scripts de init.d

Séb seb.bubuntu at gmail.com
Sam 29 Aou 22:11:52 UTC 2009


Etienne a écrit :
> bonjour

Bonsoir,

> comment puis je savoir quels sont les scripts exécutés au démarrage ?

Tout dépend de quel démarrage tu parles (système, réseau, serveur 
graphique, session) car tu peux intervenir à différent niveaux et cela 
correspond à différents "emplacements" pour les scripts.
Comme il y a plusieurs facon de procéder, il est assez judicieux de se 
demander à quel niveau le script/programme/deamon est censé intervenir 
pour savoir où son exécution devrait être indiquée.
Que veux-tu faire exactement?

> J'ai trouvé une commande  update-rc.d mais apparemment elle ne
> comporte pas d'argument show comme dans gentoo.
> suffit il de regarder ce qui est dans /etc/default ?

/etc/defaut contient des fichiers de configuration "par défaut" et est 
assez éloigné des scripts de démarrage.

Quand il s'agit de deamons qui doivent être lancés au démarrage du 
système, la méthode usuelle est la suivante:
1. On installe le script de démarrage/arrêt du deamon dans le répertoire 
/etc/init.d

2. On se sert ensuite d'update-rc.d pour créer des liens symbolique du 
script dans les différents dossiers /etc/rcX.d/ où X est le 
l'identifiant du runlevel. (cf. http://fr.wikipedia.org/wiki/Run_level)

L'avantage de cette facon de faire (héritée d'UNIX)  et qu'il suffit de 
regarder le contenu du dossier /etc/rc2.d/ (les dossier 2 à 5 sont 
normalements redondants sous Debiant/Ubuntu) pour savoir quels sont les 
script exécutés au lancement du système.

A noter que le lien créé porte toujours un nom répondant à une syntaxe 
particulière: il commence par S ou K suivant si le deamon est censé être 
lancé ou arrêté, suivi de 2 chiffres (pour gérer la priorité) et enfin 
le nom.

S99toto indique donc un lancement du script "toto" avec une priorité de 
99 (la plus faible)

Je te renvois à la documentation d'update-rc.d (accessible via "man 
update-rc.d") qui indique assez bien tout cela.

> j'ai deux deamon ntpd qui tournent .
> 
> pstree -p
>       ├─ntpd(3430)───ntpd(3431)
>       ├─ntpd(31126)───ntpd(31127)
> 
> Mon hypothèse est que l'un a été lancé par openntpd et l'autre a été
> lancé par moi avec la commande ntpd.
> 
> comment savoir lequel des deux processus tuer ?

a priori, celui qui à la pid le plus élevé a été lancé plus tard et donc 
plutôt par l'utilisateur... mais pour être sur il vaut mieux regarder 
les détails via, par exemple, la commande:

~$ ps aux | grep ntpd

> merci
> 

Séb





Plus d'informations sur la liste de diffusion ubuntu-fr