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?
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
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
;)