Re: problème de séquencement au boot sur squeeze
Le mercredi 5 janvier 2011 à 12:23:13, Eric Belhomme a écrit :
> Bonjour,
’jour,
> Soit une machine fraichement installée en Debian Squeeze
> (amd64) :
> - la machine est en DHCP
> - l'authentification se fait via un annnuaire LDAP distant,
> via les paquets libnss-ldapd, libpam-ldapd, nslcd, et nscd
> - des montages NFS sont montés par autofs5, via une
> configuration LDAP
>
> La configuration est fonctionnelle, à ceci près que lors du
> boot de la machine, nslcd ne démarre pas en se plaignant de
> ne pouvoir joindre le serveur LDAP, et autofs ne monte pas
> mes auto-montages.
>
> Une fois ces deux daemons redémarrés manuellement, le tout
> fonctionne.
>
> J'en conclus que le réseau est trop long à démarrer ou du
> moins que insserv n'attend pas que mes interfaces soient
> effectivement up avant de passer au démarrage de ces deux
> démons... ce qui est ennuyeux !
>
> J'avoue que le fonctionnement de sysv-rc et insserv est assez
> mystérieux pour moi, malgré la lecture de
> http://wiki.debian.org/LSBInitScripts/ DependencyBasedBoot
http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot ne
contient effectivement pas grand-chose d’utile pour la
modification. En revanche http://wiki.debian.org/LSBInitScripts
est assez clair, non ?
> Je prends donc toute explication claire sur la façon *propre*
> de customiser l'ordre de démarrage des daemons avec ce
> nouveau système...
La façon propre me semble être de modifier les entêtes LSB.
Puis de lancer update-rc.d sur le script pour recalculer les
dépendances.
Pour ton problème, et comme proposé sur le wiki, tu peux déjà
vérifier le graphe de dépendances :
aptitude install insserv graphviz
/usr/share/insserv/check-initd-order -g > boot.dot
dotty boot.dot
Les nœuds ronds, les flèches vertes et les flèches jaunes
représentent des dépendances pour des services qui ne sont pas
installés sur ta machine. Les services précédés d’un $ sont
virtuels : il n’y a pas de script correspondant ; ils sont
explicités dans /etc/insserv.conf et dans la page de man de
insserv.
Tu dois voir que tout est lancé dans le bonne ordre (nslcd
après $network). Et pour nslcd et autofs, les dépendances m’ont
l’air correctes.
Et donc, reste ta seconde idée : « le réseau est trop long à
démarrer »…
Sauf que, si je ne me trompe pas, /etc/init.d/neworking lance
et attend ifup -a qui lance et attend dhclient qui ne part en
tâche de fond que lorsque l’interface est configurée. Donc, à
moins que ton interface soit configurée différemment, le réseau
doit être fonctionnel quand nslcd est lancé.
Si je n’ai pas été clair ou convaincant, tu peux vérifier la
séquence de boot à partir des n° de liens S* dans /etc/rc?.d/
(en fait, tu dois même avoir networking en rcS et nslcd en rc2,
non ? donc networking forcément avant nslcd). Et tu peux aussi
ajouter un test au début de /etc/init.d/nslcd pour vérifier que
l’interface est bien configurée (un simple envoi de ifconfig -a
vers un fichier te permettra de le vérifier a posteriori).
--
Sylvain Sauvage
Reply to: