NetworkManager up scripts rodando duas vezes

1

Meu sistema, Ubuntu 16.04, usa NetworkManager . Para ligar um evento de interface, coloquei um script em /etc/network/if-up.d/ . O chefe do script se parece com:

#!/bin/bash

NETIF="enp2s0"

if [ "$IFACE" != $NETIF ]; then
  exit 0
fi

/some/cmd/output &>> /var/log/if-up.log

iptables -F -t nat
...

Após a inicialização do sistema, bem como a reinicialização manual da rede através do applet, o script é executado duas vezes. Isso não seria um problema, mas estou executando alguns comandos que levam algum tempo.

Existe algo que eu possa fazer para evitar isso?

    
por Twifty 16.03.2017 / 01:49

1 resposta

1

O script provavelmente está sendo chamado uma vez para IPv4 e uma vez para IPv6.

Com base na execução de um pequeno script na minha máquina, estas são as variáveis que você tem no ambiente, abaixo. Devo mencionar que isso foi com o gerenciador de rede versão 1.2.6, em AMD64.

Você pode usar $ADDRFAM para testar qual chamada é qual. As outras variáveis também podem ser úteis:

ADDRFAM=inet6 # "inet" if ipv4
CONNECTION_FILENAME=/etc/NetworkManager/system-connections/WIFI_CONN
CONNECTION_UUID=b9464eff-3c0c-4035-1f65-9ac8ccda824f
DEVICE_IFACE=wlo1
DEVICE_IP_IFACE=wlo1
DHCP4_BROADCAST_ADDRESS=192.168.1.255
DHCP4_DHCP_MESSAGE_TYPE=5
DHCP4_DHCP_SERVER_IDENTIFIER=192.168.1.1
DHCP4_EXPIRY=1503257834
DHCP4_NETWORK_NUMBER=192.168.1.0
DHCP4_NEXT_SERVER=0.0.0.0
DHCP4_NTP_SERVERS=omitted
DHCP4_REQUESTED_DOMAIN_NAME=1
DHCP4_REQUESTED_DOMAIN_NAME_SERVERS=1
DHCP4_REQUESTED_HOST_NAME=1
DHCP4_REQUESTED_MS_CLASSLESS_STATIC_ROUTES=1
DHCP4_REQUESTED_NETBIOS_SCOPE=1
DHCP4_REQUESTED_RFC3442_CLASSLESS_STATIC_ROUTES=1
DHCP4_REQUESTED_ROUTERS=1
DHCP4_REQUESTED_STATIC_ROUTES=1
DHCP4_REQUESTED_SUBNET_MASK=1
DHCP4_REQUESTED_WPAD=1
DHCP4_TIME_OFFSET=3600
IP4_ADDRESS_0=192.168.1.37/24 192.168.1.1
IP4_NAMESERVERS=208.67.222.222
IP4_NUM_ADDRESSES=1
IP6_GATEWAY=::
IP6_NUM_ADDRESSES=1
MODE=start
PHASE=post-up
VERBOSITY=0
    
por 20.08.2017 / 19:18