Comandos {PRE, POST} _ {UP, DOWN} específicos da interface podem ser definidos em /etc/network.d/interfaces/$DEVICE, em que $ DEVICE é o nome do dispositivo de rede. Portanto, embora você precise de um gancho por interface (que é, na verdade, o que você indica que deseja), você não precisa de um por conexão.
Por exemplo, minha pasta de interfaces tem os seguintes arquivos:
/etc/network.d/interfaces/_functions:
notify() {
dev="$1"
state="$2"
/usr/local/sbin/xuserrun /usr/local/sbin/network_notification "$dev" "$state"
return 0
}
/etc/network.d/interfaces/ {wlan0, eth0} (ambos com o mesmo conteúdo):
source /etc/network.d/interfaces/_functions
POST_UP="notify ${INTERFACE} up"
PRE_DOWN="notify ${INTERFACE} down"
Isso executa um script para enviar uma notificação pop-up informando quando uma conexão foi feita / perdida. Observe que esses ganchos são executados como usuário root. O comando xuserrun
está disponível no github e determina o nome de usuário atual do X e alterna para esse usuário antes de executar o comando subsequente.