使用 netcfg 在任何无线连接出现时启动程序

Chr*_*own 6 netcfg

我编写了一个程序,可以透明地登录到强制门户。因此,我想在任何无线连接出现时使用netcfg 运行它。可以通过使用在配置文件中对每个连接执行此操作POST_UP,但这需要将其添加到当前存在的每个连接以及将来可能创建的任何连接中,这在我的情况下是不可行的。我也不希望作为守护进程轮询网络连接。我在man netcfg-profiles.

我应该如何处理这个问题?netcfg 是否有任何内置配置允许将 aPOST_UP应用于多个连接?

它也适用于所有连接(包括有线)是可以接受的,但如果可能的话,我想避免它。

kbe*_*eta 2

特定于接口的 {PRE,POST}_{UP,DOWN} 命令可以在 /etc/network.d/interfaces/$DEVICE 中定义,其中 $DEVICE 是您的网络设备名称。因此,尽管每个接口都需要一个钩子(这实际上是您所表明的所需),但每个连接不需要一个钩子。

例如,我的interfaces文件夹有以下文件:

/etc/network.d/interfaces/_functions:

notify() {
dev="$1"
state="$2"
/usr/local/sbin/xuserrun /usr/local/sbin/network_notification "$dev" "$state"
return 0
}
Run Code Online (Sandbox Code Playgroud)

/etc/network.d/interfaces/{wlan0,eth0} (两者具有相同的内容):

source /etc/network.d/interfaces/_functions
POST_UP="notify ${INTERFACE} up"
PRE_DOWN="notify ${INTERFACE} down"
Run Code Online (Sandbox Code Playgroud)

这会运行一个脚本来发送弹出通知,告诉我连接何时建立/丢失。请注意,这些挂钩以 root 用户身份运行。该xuserrun命令可在github上找到,并确定当前的 X 用户名并在运行后续命令之前切换到该用户。