Execution de script au debranchement cable reseau

Bonjour,

Je me demandais s’il était possible de détecter/exécuter une action lors du débranchement du câble réseau sur une interface.
Je ne sais pas si par exemple la commande ifdown est exécutée ou quelque chose dans ce style.

Merci d’avance!

/etc/network/
ifup.d
pré up
post up
c’est tout des script

si non regarde coté udev hal ( rules network?)

Ok ça roule je regarde et je te tiens au courant.
Merci pour les pistes!

Les scripts ifup, ifdown, etc. sont exécutés quand tu actives/désactives une interface. Je ne suis pas sûr qu’il soient exécutés simplement en branchant/débranchant, sauf peut-être si il y a « allow-hotplug » dans /etc/network/interfaces. À vérifier…

Si c’est le cas, il faudrait peut-être regarder du côté de ifplugd (pas testé) :

Ok donc pour le moment j’ai réussi à executer un script lors du ifdown/ifup

Ce que j’ai fait:

[ul]- ajout d’un script dans par exemple[/ul]

[ul]- modification du fichier[/ul]

[ul]- en ajoutant dans mon interface souhaitée[/ul]

Mais comme l’a dit kna ceci fonctionne uniquement si j’exécute manuellement ifdown

Je vais maintenant regarder avec ton ifplugd.

Merci!

EDIT: Si jamais même avec le allow-hotplug ca ne fonctionne pas automatiquement

Me revoici.

Tout fonctionne parfaitement avec ifplugd.
Voici la procédure:
[ul]- installer ifplugd[/ul]
[ul]- modifier le fichier[/ul]

[ul]- gérer le cas souhaité[/ul]

[code]case “$2” in
up)
run-parts --exit-on-error --arg="$1" --arg="$2" /etc/ifplugd/action.d/
;;

down)
#
# Votre script ici pour le down!
#
;;
*)
echo “ifplugd.action: Incorrect action argument” >&2
exit 1
;;
esac
[/code]

Dernière petite question:

Dans l’action down j’exécute un script qui va tourner tant que l’interface n’est pas denouveau up.
Je souhaiterais donc:

[ul]lancer mon script[/ul]
[ul]récupérer le pid du script[/ul]
[ul]killer ce script dans le up[/ul]

Comment dois-je m’y prendre?

Encore merci pour votre aide!

Faut utiliser une des variables internes de bash qui donne le PID : abs.traduc.org/abs-fr/ch09.html# … lvariables
Cherches $! et $$

Pour que le script que je lance ne soit pas bloquant on est bien d’accord qu’il faut mettre un & à la fin
Par exemple:

Car ci c’est le cas je ne vois pas pourquoi il ne passe pas à la suite…

Oui, quelque chose du genre :

/script/monscript &
echo $! > /chemin/vers/fichier.pid

doit te permettre de killer ton script en faisant :

kill $(cat /chemin/vers/fichier.pid)

Qu’entends-tu exactement par « ne passe pas à la suite » ?

Je vais t’expliquer en gros ce que je comptais faire avec mon script comme ça ça sera plus clair je pense.

L’idée était de pouvoir jouer un son (par exemple un son de sirène) quand le câble réseau se débranche. Et tant que le câble n’est pas rebranché le son continue à être joué. Dans le down je lance donc mon script qui joue le son et dans le up je souhaiterais arrêter le son et donc killer le processus qui joue le son (je sais pas si c’est la bonne technique mais je n’en vois pas d’autre).

Donc dans le down je lance le son et je veux continuer pouvoir récupérer son pid pour ensuite le killer comme tu me l’as montrer plus haut.

Encore merci pour ton aide!

Et quel est le problème si tu fais comme j’ai écris plus haut :question: