Como executar um script personalizado quando a Internet se reconecta?

3

Minha Internet é desconectada de vez em quando. Eu gostaria de executar um script Bash toda vez que a Internet se reconecta.

O script é bem simples:

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

Ele é colocado em /usr/bin e funciona perfeitamente quando eu o chamo de online_notifier no Terminal.

Eu gostaria de executar este script sempre que a Internet se reconectar. Eu tentei adicionar a seguinte linha ao meu arquivo /etc/network/interfaces/ :

post-up sound_notifier

Este é o conteúdo completo desse arquivo:

auto lo
iface lo inet loopback
post-up sound_notifier

Eu também tentei com o caminho completo também. Mas não funcionou. Aqui está o meu ifconfig output , se isso ajudar.

Como posso conseguir isso?

    
por Joseph John 27.06.2015 / 19:52

2 respostas

1

Aqui está um script muito simples. Torne-o executável com chmod +x e adicione como aplicativo de inicialização personalizado para executá-lo continuamente em cada login. Desde que eu mencionei aplay, isso deve funcionar na linha de comando, não apenas gui. Meu laptop atual não tem som, então eu tive que testar tudo com notify-send . Sinta-se à vontade para adaptar o roteiro conforme necessário.

#!/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
    
por Sergiy Kolodyazhnyy 28.06.2015 / 03:20
0

Assumindo, o seu script tem o nome sound_notifier e é colocado em /usr/bin :

sudo chmod +x /usr/bin/sound_notifier

Crie um script /etc/network/if-up.d/start_sound_notifier

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

adicione o código abaixo

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

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

sound_notifier

Torne o script executável.

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

Isso é tudo

;)

    
por A.B. 27.06.2015 / 20:16