Мой Интернет разъединяется время от времени. Я хотел бы запустить скрипт 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
вывод, если это помогает.
Как я могу достигнуть этого?
Вот очень простой сценарий удара. Сделайте его исполняемым файлом с 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
Принятие, Ваш сценарий имеет имя 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
Это - весь
;)