# [OpenRC] Priorité : service et réseau [Résolu]

## y351

Bonjour,

J'utilise openrc.

J'ai un service arpwatch qui dépend d'une interface réseau au démarrage.

Dans la conf arpwatch, je force l'écoute sur une interface VLAN e.g. vlan1.

Or dans le boot, l'interface vlan1 (qui dépend de l'interface physique eth0) doit être démarré après celui de eth0.

Aujourd'hui, l'odre du boot avec le service arpwatch non démarré :

arpwatch est dans le runlevel default .

1/ service  toto

2/ arpwatch qui force le boot de l'interface vlan1 -> failed

3/ service tata

4/ 

a) interface eth0

b) interface vlan1 -> OK

-> arpwatch failed car il s'attend à démarrer après le 2/

Ce que je souhaite, c'est le suivant :

1/ service  toto

2/ service tata

3) 

a) interface eth0

b) interface vlan1

4) service arpwatch

J'ai essayé avec "rc-update add arpwatch nonetwork" mais cela n'a pas marché.

i) Est-ce possible de prioriser l'ordre de boot d'un service après un autre ?

ii) Si oui, comment ?

Merci d'avance.Last edited by y351 on Fri Dec 18, 2020 10:56 am; edited 2 times in total

----------

## sluggeek

Salut,

Je suis pas un spécialiste d'openrc mais peut être pourrais tu regarder ce wiki: 

https://wiki.gentoo.org/wiki/OpenRC#Dependency_behavior

Sinon, en adaptant la partie depend() {...} de ton /etc/init.d/arpwatch ?

Ce ne sont que des idées en attendant que des plus calés que moi te répondent.

Bon courage,

Bien à toi,

----------

## netfab

Salut,

Tout est là : https://wiki.gentoo.org/wiki/Handbook:X86/Working/Initscripts#Dependencies

----------

## El_Goretto

En complément, tu ne devrais pas avoir besoin de spécifier des dépendances sur les interfaces réseaux individuelles (physiques ou non). Il me semble qu'on peut jouer avec cette notion de "le réseau est up" en allant dans /etc/rc.conf (cf un autre bout du handbook)

----------

## y351

J'ai copié le script :

```
cp /etc/init.d/arpwatch /etc/init.d/arpwatch.vlan1
```

Puis j'ai modifié le script : /etc/init.d/arpwatch.vlan1

```
depend() {

   need "net.${ARPWATCH_IFACE}"

}

```

->

```

depend() {

    after net

    need "net.${ARPWATCH_IFACE}"

}

```

J'ai ajouté arpwatch.vlan1 au démarrage 

```
rc-update add arpwatch.vlan1 default
```

Après démarrage, je vois que le service arpwatch.vlan1 up.

Mais lors du démarrage, je vois qu'il y a quand même une tentative de lancer l'interface vlan1 avant l'interface physique...qui se termine évidemment en fail.

Ce message d'erreur me dérange...

----------

## El_Goretto

Parce que je pense que tu "bricoles" quelque chose qui n'en a pas besoin  :Smile: 

Surtout ajouter une dépendance "complexe/spécifique" à une interface réseau côté service, c'est cracra (et il faut le refaire pour chaque service, sans compter reporter les modifs à chaque MAJ), alors qu'ils ont simplement besoin "du réseau", et que cette notion est configurable une fois pour tout à un seul endroit dans le système (déjà mentionné dans ce fil).

Les VLANs et bridge & co sont des pseudo-interfaces qui ne doivent pas être gérées de la même façon que des interfaces physiques "réelles", puisqu'elles dépendent de ces dernières... Donc souvent, implicitement leur simple configuration/déclaration est nécessaire, pas plus, le reste de l'intelligence est réalisée par les scripts de gestion réseau des *Nix (en particuliers l'ordre de démarrage et d'arrêt).

cf https://wiki.gentoo.org/wiki/Handbook:AMD64/Networking/Modular#VLAN_.28802.1q_support.29, il y a un exemple pour du bridge avec le mot clé rc_net_<if>_need qui pourrait être intéressant, s'il faut vraiment préciser les dépendances entre interfaces explicitement (à confirmer, je n'en ai jamais fait sous Gentoo).

----------

## y351

 *Quote:*   

> Parce que je pense que tu "bricoles" quelque chose qui n'en a pas besoin 

 

En effet puisque les options suivantes permettent de faire ce que je veux dans /etc/conf.d/net :

```
rc_net_vlan1_need="net.eth0"

rc_net_eth0_provide="!net"
```

En résumé, l'interface VLAN dépend de l'interface eth0.

Et tout appel à net doit se référer à l'interface VLAN et pas uniquement à toute autre interface.

Merci !

----------

