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 05/09/2011, à 20:30

yoyomoony

RunLevel et script /etc/rc2.d/

Bonjour à tous.

J'ai un soucis curieux.
De ce que je sais, tous les scripts de /etc/rc2.d/ sont exécutés quand le système entre en "runlevel 2".

(Cet exemple est pour Debian 6, mais je pense que le runlevel est le même pour tous les Unix et ses dérivés.)

Le contenu du répertoire :

root@openvpn:/etc/rc2.d# ls -l
total 4
-rw-r--r-- 1 root root 677  1 janv.  2011 README
lrwxrwxrwx 1 root root  17 30 août  18:25 S14portmap -> ../init.d/portmap
lrwxrwxrwx 1 root root  20 30 août  18:25 S15nfs-common -> ../init.d/nfs-common
lrwxrwxrwx 1 root root  17 30 août  18:25 S17rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root  15 30 août  19:11 S19acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root  13 30 août  19:11 S19atd -> ../init.d/atd
lrwxrwxrwx 1 root root  14 30 août  19:11 S19cron -> ../init.d/cron
lrwxrwxrwx 1 root root  15 30 août  19:11 S19exim4 -> ../init.d/exim4
lrwxrwxrwx 1 root root  13  2 sept. 12:34 S19ntp -> ../init.d/ntp
lrwxrwxrwx 1 root root  19  5 sept. 16:04 S19openvpn -> /etc/init.d/openvpn
lrwxrwxrwx 1 root root  13 30 août  19:11 S19ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root  18 30 août  19:11 S21bootlogs -> ../init.d/bootlogs
lrwxrwxrwx 1 root root  18 30 août  19:11 S22rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root  19 30 août  19:11 S22rmnologin -> ../init.d/rmnologin
lrwxrwxrwx 1 root root  23 30 août  19:11 S22stop-bootlogd -> ../init.d/stop-bootlogd
lrwxrwxrwx 1 root root  22  5 sept. 20:23 S30bridge-up -> ../init.d/bridge-up.sh

Je veux que /etc/init.d/bridge-up.sh soit lancé en dernier. Mais visiblement, ce n'est pas le cas (j'ai l'impression que le script n'est pas du tout exécuté.
Je ne suis pas passé par update-rc.d pour installer le script. J'ai juste fais un lien symbolique vers le bon répertoire (Start niveau 30).

Pour info, le contenu du script S30bridge-up (monte un bridge pour OpenVPN, ne respecte pas la syntaxe) :

root@openvpn:/etc/rc2.d# cat S30bridge-up
#!/bin/bash

echo Have a good tiem

echo Hello > /root/init.txt

# Créer une carte virtuelle en mode "ethernet"
openvpn --mktun --dev tap0

# Créer l'interface bridge
brctl addbr br0

# Associer la carte virtuelle ethernet au bridge
brctl addif br0 tap0

# Associer la vrai carte ethernet au bridge
brctl addif br0 eth0

# Activer le mode promisc sur la carte virtuelle et sur la carte réelle
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up

# Configurer l'adresse IP du bridge
ifconfig br0 192.168.41.2 netmask 255.255.255.0

# Route par défaut
route add default gw 192.168.41.1 br0

Quelqu'un sait-il où est l'erreur ?
D'avance merci.

Bonne soirée.

Dernière modification par yoyomoony (Le 05/09/2011, à 20:32)

Hors ligne

#2 Le 05/09/2011, à 21:53

yoyomoony

Re : RunLevel et script /etc/rc2.d/

Hum, je pense qu'update-rc.d n'est plus utilisé pour régler ça.

insserv

remplace

update-rc.d

Hors ligne

#3 Le 06/09/2011, à 12:02

droopy191

Re : RunLevel et script /etc/rc2.d/

Salut,

Pourquoi ne pas utiliser les directives pre-up, post-up et pre-down dans /etc/network/interfaces ?
je gère comme cela le bridge et le démarrage du vpn

auto eth0
iface eth0 inet manual

# bridge eth0 sur br0 pour Openvpn
auto br0
iface br0 inet static
        address 192.168.10.10
        netmask 255.255.255.0
        broadcast 192.168.10.255
        gateway 192.168.10.1
        pre-up /etc/openvpn/bridge.sh br0 eth0 tap0 up && /etc/init.d/openvpn start ebox-bridge
        pre-down /etc/init.d/openvpn stop
        post-down /etc/openvpn/bridge.sh br0 eth0 tap0 down

Je vous passe le script bridge.sh si besoin.

Hors ligne

#4 Le 06/09/2011, à 12:14

yoyomoony

Re : RunLevel et script /etc/rc2.d/

Salut droopy191 et merci pour ta réponse.

Oui tu as raison, je pourrais utiliser /etc/network/interfaces pour gérer cela. Et c'est probablement ce que je vais faire.

Néanmoins, j'aimerais pouvoir régler plus finement l'ordre d’exécution de mes scripts.
Gérer ce cas précis dans le fichier de conf' des interfaces est une bonne chose, mais pour mes autres programmes, ça ne sera pas toujours le cas.

Je suis juste curieux.

Hors ligne

#5 Le 06/09/2011, à 14:21

droopy191

Re : RunLevel et script /etc/rc2.d/

Pour du réseau, le fichier interface est amha le plus adapté mais ce n'est pas une méthode générique en effet.
( et je trouve crade de mettre des ips en dur pour dans un script d'init)


Je pense que ca ne marche pas à cause de votre script, il ne respecte pas les minimums de script d'init.
Voyez ici
Script d'init debian
typiquement la prise en compte des paramètres start, stop, reload
Voyez aussi Standard LSB

Partez d'un fichier d'init existant dans /etc/ini.d et adaptez ( attention à la gestion des dépendances de démarrage )

Dernière modification par droopy191 (Le 06/09/2011, à 14:24)

Hors ligne