Squeeze - Probleme ordre de lancement de services

Bonjour,

J’ai trois services pour une supervision Centengine / Centreon à lancer dans un ordre bien precis au démarrage de mon serveur (a cause de dépendances).
Malgres mes recherches, je n’arrive pas à les lancer dans cet ordre :
1 - /etc/init.d/cbd-central-rrd
2 - /etc/init.d/cbd-central-broker
3 - /etc/init.d/centengine

Voici les headers de mes différents scripts :
cbd-central-rrd

[code]### BEGIN INIT INFO

Provides: cbd-central-rrd

Required-Start: mysql

Required-Stop: cbd-central-broker centengine

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Description: Centreon RRD

END INIT INFO

[/code]
cbd-central-broker

[code]### BEGIN INIT INFO

Provides: cbd-central-broker

Required-Start: cbd-central-rrd

Required-Stop: centengine

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Description: Centreon Broker

END INIT INFO

[/code]
centengine

[code]### BEGIN INIT INFO

Provides: centengine

Required-Start: $local_fs cbd-central-broker

Required-Stop:

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Short-Description: Start and stop Centreon Engine

END INIT INFO

[/code]

Est ce que j’ai fais des erreurs ?
Merci pour votre aide.

François

Bonjour,

Regarde du côté d’update-rc.d :

[quote=“man update-rc.d”]update-rc.d [-n] nom defaults [NN | SS KK]
[…]
et NN est le code à deux chiffres utilisé par init pour
décider de l’ordre d’exécution des scripts.
[/quote]

Usti

Ton erreur vient des Required-Stop : ça doit indiquer les services dont tu as encore besoin au moment de l’arrêt, et non pas (comme tu sembles le penser) les services qui doivent être arrêtés avant.
Le principe c’est que si tu lances les services dans un ordre donné, logiquement tu les arrêtes dans l’ordre inverse.
Point de détail : pour centengine tu n’as pas besoin de spécifier $local_fs car centengine -> cbd-central-broker -> cbd-central-rrd -> mysql -> $local_fs.

cbd-central-rrd

[code]### BEGIN INIT INFO

Provides: cbd-central-rrd

Required-Start: mysql

Required-Stop: mysql

… le reste…[/code]
cbd-central-broker

[code]### BEGIN INIT INFO

Provides: cbd-central-broker

Required-Start: cbd-central-rrd

Required-Stop: cbd-central-rrd

… le reste…[/code]
centengine

[code]### BEGIN INIT INFO

Provides: centengine

Required-Start: cbd-central-broker

Required-Stop: cbd-central-broker

… le reste…[/code]

[quote=“Ustilago”]Regarde du côté d’update-rc.d :

[quote=“man update-rc.d”]update-rc.d [-n] nom defaults [NN | SS KK]
[…]
et NN est le code à deux chiffres utilisé par init pour
décider de l’ordre d’exécution des scripts.
[/quote][/quote]
Non ça ne marche plus sous Squeeze ça, update-rc.d utilise insserv maintenant. :wink:

Merci pour votre aide.

Effectivement, j’avais mal compris la directive : required-stop
Alors cela ne fonctionne toujours pas mais je crois savoir pourquoi. Il y a un autre problème.
Le service cbd est utilise par les 2 scripts, avec des fichiers de paramétrage différents :
cbd-central-rrd
cbd-central-broker

Du coup, il fait la confusion lorsque j’enregistre centengine :

root@machine:~# insserv centengine insserv: warning: script 'functions' missing LSB tags and overrides insserv: script central-rrd: service cbd already provided!

Du coup, il me lance cbd-central-rrd puis centengine et le dernier n’est pas lancé ou se plante…

Une idée sur le ‘comment faire’ ?

Normalement la directive Provides sert justement à distinguer les services (nom unique), d’après ce que tu as marqué ça devrait être bon.
Ça serait pas un reste de bricolages que tu as fait avant ? Supprime complètement les 3 services (insserv -r) et remets-les ensuite, on verra bien.

Effectivement, il y avait 2 services crees par des scripts d’installation qui trainaient et que je n’avais pas vu.
Ces deux scripts utilisaient eux aussi cbd !
J’ai donc tout nettoyé et tout fonctionne.

Merci pour ton aide. Problème résolu.

Résolu => coche verte pas dans le titre du sujet. :wink:
Merci.