Problème ordre de démarrage services (runlevel)

Bonjour à tous,

Sous Debian 6.0.2, je souhaiterais lancer 2 services l’un après l’autre.
Je m’explique j’ai besoin de démarrer le service A pour lancer le service B. Donc dans l’ordre de démarrage le service A soit démarrer obligatoirement AVANT le service B. Mon runlevel par défaut est le 2.
Je me suis donc dirigé vers les runlevels avec la commande “update-rc.d service_A defaults X” (par défaut) et même manuellement “update-rc.d service_A start 20 2 . stop 40 6 .”.
Mais rien n’y fait, les runlevels des 2 services A & B sont crées avec comme ordre de démarrage S02 pour les 2. Résultat : ils vont inévitablement redémarrer en même temps, ce que je ne souhaite pas…

Je sais pas si j’ai été très clair.

Merci d’avance pour votre aide

Il te faut rajouter des en-têtes LSB dans tes scripts.

Exemple pour /etc/init.d/networking :

[code]#!/bin/sh -e

BEGIN INIT INFO

Provides: networking

Required-Start: mountkernfs $local_fs

Required-Stop: $local_fs

Should-Start: ifupdown

Should-Stop: ifupdown

Default-Start: S

Default-Stop: 0 6

Short-Description: Raise network interfaces.

END INIT INFO

[…] le script en lui-même[/code]

Pour tout savoir là dessus : wiki.debian.org/LSBInitScripts (en anglais)

Euh dèja essayé sans succès.
Ce que je ne comprends pas c’est pourquoi lorsque je créé à la main (ou par défaut) le runlevel par la cmd update-rc.d, quel que soit le n° d’ordre que j’attribue au service, il prend obligatoirement la valeur S02 ?

Pourrais-tu poster ici les en-têtes LSB de tes scripts ?
Depuis Squeeze, Debian est entièrement passée à une séquence de boot LSB, les dépendances déterminent l’ordre relatif de démarrage/arrêt des services ce qui implique que insserv gère lui-même l’ordre des scripts au sein des différents runlevels, et ça doit sûrement poser des problèmes quand tu veux définir cet ordre à la main.
La Debian way réside maintenant dans des en-têtes LSB adéquats, et nulle part ailleurs.

Effectivement, tout se joue dans les entêtes LSB du type

BEGIN INIT INFO

     # Provides:          boot_facility_1 [ boot_facility_2 ...]
     # Required-Start:    boot_facility_1 [ boot_facility_2 ...]
     # Required-Stop:     boot_facility_1 [ boot_facility_2 ...]
     # Should-Start:      boot_facility_1 [ boot_facility_2 ...]
     # Should-Stop:       boot_facility_1 [ boot_facility_2 ...]
     # X-Start-Before:    boot_facility_1 [ boot_facility_2 ...]
     # X-Stop-After:      boot_facility_1 [ boot_facility_2 ...]
     # Default-Start:     run_level_1 [ run_level_2 ...]
     # Default-Stop:      run_level_1 [ run_level_2 ...]
     # X-Interactive:     true
     # Short-Description: single_line_description
     # Description:       multiline_description
     ### END INIT INFO

De plus, si il y a ajout de services dans les boot_facility, il faut aussi ajouter, dans /etc/insserv.conf la ligne suivante:
$votre_service votre_service

Puis valider tout ça par la commande insserv -v

Dans mon cas ça fonctionne!

Si ça peut aider…

Juste un oubli, les LSB sont à ajouter dans l’entête des scripts init (ex /etc/init.d/postgresql).