web-dev-qa-db-fra.com

Comment exécuter un script personnalisé lorsque Internet se reconnecte?

Mon Internet se déconnecte de temps en temps. J'aimerais exécuter un script Bash chaque fois qu'Internet se reconnecte.

Le script est assez simple:

#!/bin/bash
mplayer /home/user/sound.mp3

Il est placé dans /usr/bin et fonctionne parfaitement lorsque je l’appelle comme online_notifier dans Terminal.

Je voudrais exécuter ce script chaque fois que l'Internet se reconnecte. J'ai essayé d'ajouter la ligne suivante à mon fichier /etc/network/interfaces/:

post-up sound_notifier

Ceci est le contenu complet de ce fichier:

auto lo
iface lo inet loopback
post-up sound_notifier

J'ai aussi essayé avec le chemin complet aussi. Mais ça n'a pas marché. Voici ma ifconfig sortie , si cela aide.

Comment puis-je atteindre cet objectif?

3
Joseph John

Voici un script bash très simple. Rendez-le exécutable avec chmod +x et ajoutez-le en tant qu'application de démarrage personnalisée pour l'exécuter en continu à chaque connexion. Depuis que j'ai mentionné aplay, cela devrait fonctionner en ligne de commande, pas seulement en interface graphique. Mon ordinateur portable actuel n'a pas de son, j'ai donc dû tout tester avec notify-send. N'hésitez pas à adapter le script si nécessaire.

#!/bin/bash
# set -x

while [ 1 ]; do
  STATUS_CURRENT=$(nmcli -t -f STATE nm status)
  if [[ $STATUS_CURRENT == "connected"  &&  $STATUS_LAST != "connected" ]]; then
        # replace this with aplay sound
        notify-send "We've connected"

# Elif [[ $STATUS_CURRENT == "disconnected"  &&  $STATUS_LAST == "connected"  ]];then
#       notify-send "Disconnected now"
  fi

   STATUS_LAST="$STATUS_CURRENT"
   sleep 2
done
1

En supposant que votre script porte le nom sound_notifier et qu'il est placé dans /usr/bin:

Sudo chmod +x /usr/bin/sound_notifier

Créer un script /etc/network/if-up.d/start_sound_notifier

Sudo nano /etc/network/if-up.d/start_sound_notifier

ajoutez le code ci-dessous

#!/bin/sh
if [ "$METHOD" = loopback ]; then
    exit 0
fi

# Only run from ifup.
# if [ "$MODE" != start ]; then
#    exit 0
# fi

sound_notifier

Rendre le script exécutable.

Sudo chmod +x /etc/network/if-up.d/start_sound_notifier

C'est tout

;)

0
A.B.