如何在互联网重新连接时执行自定义脚本?

如何在互联网重新连接时执行自定义脚本?

我的互联网时不时会断线。每次互联网重新连接时,我都想运行 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输出,如果有帮助的话。

我怎样才能实现这个目标?

答案1

这是一个非常简单的 bash 脚本。使用 使其可执行,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

答案2

假设您的脚本有名称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

就这样

;)

相关内容