![仅在连接 WiFi 时在启动时运行特定应用程序](https://linux22.com/image/1090117/%E4%BB%85%E5%9C%A8%E8%BF%9E%E6%8E%A5%20WiFi%20%E6%97%B6%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E8%BF%90%E8%A1%8C%E7%89%B9%E5%AE%9A%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
我想在启动时运行一个名为“软件更新程序”的应用程序,通常我会将其添加到启动应用程序列表中,这样每次启动时它都会启动。我想要做的是,仅在连接 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