Как выполнить пользовательский сценарий, когда Интернет снова соединяется?

Мой Интернет разъединяется время от времени. Я хотел бы запустить скрипт Bash каждый раз, когда Интернет снова соединяется.

Сценарий довольно прост:

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

Это помещается в /usr/bin и работы отлично, когда я называю его как online_notifier в Терминале.

Я хотел бы выполнить этот сценарий каждый раз, когда Интернет снова соединяется. Я пытался добавить следующую строку к моему /etc/network/interfaces/ файл:

post-up sound_notifier

Это - полное содержание того файла:

auto lo
iface lo inet loopback
post-up sound_notifier

Я также попробовал полным путем также. Но это не работало. Вот мой ifconfig вывод, если это помогает.

Как я могу достигнуть этого?

3
задан 27 June 2015 в 20:58

2 ответа

Вот очень простой сценарий удара. Сделайте его исполняемым файлом с chmod +x и добавьте как пользовательское приложение запуска для выполнения этого непрерывно на каждом входе в систему. Так как я упомянул aplay, это должно работать в командной строке, не просто gui. Мой текущий ноутбук не имеет звука, таким образом, я должен был протестировать все с notify-send. Не стесняйтесь адаптировать сценарий по мере необходимости.

#!/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
ответ дан 1 December 2019 в 17:36

Принятие, Ваш сценарий имеет имя sound_notifier, и это помещается в /usr/bin:

sudo chmod +x /usr/bin/sound_notifier

Создают сценарий /etc/network/if-up.d/start_sound_notifier

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

, добавляют, что код ниже

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

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

sound_notifier

Делает исполняемый файл сценария.

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

Это - весь

;)

0
ответ дан 1 December 2019 в 17:36

Другие вопросы по тегам:

Похожие вопросы: