仅在连接 WiFi 时在启动时运行特定应用程序

仅在连接 WiFi 时在启动时运行特定应用程序

我想在启动时运行一个名为“软件更新程序”的应用程序,通常我会将其添加到启动应用程序列表中,这样每次启动时它都会启动。我想要做的是,仅在连接 WiFi 时运行它。

基本上

  • 检查已连接的 WiFi,如果已连接则运行软件更新程序
  • 如果不是,就不要做任何事情。

在范围内的已保存的 WiFi 会在启动时自动连接。

答案1

如果使用 NetworkManager,您可以放入一个脚本/etc/NetworkManager/dispatcher.d并让其“监听” wifi UP 事件。请注意,您可能需要更改 WLAN 接口名称

以下是一个例子:

#!/usr/bin/env sh

IFACE=$1 STATUS=$2
IW=/usr/bin/iw
WLAN_IFACE=wlp1s0

if [ ! -x $IW ]; then
    exit 1
fi

if [ "$IFACE" = $WLAN_IFACE ] && [ "$STATUS" = "up" ]; then
    echo "[SCRIPT] -- PUT SOMETHING HERE YOU WANT TO HIT LOGS --"
    echo "Replace this echo with a command line instruction"
fi

您可以扩展上述逻辑,使其仅在给定网络上触发,等等。

以下是对 NetworkManager 事件($2)的参考,可能会有所帮助:https://developer.gnome.org/NetworkManager/stable/NetworkManager.html

相关内容