NetworkManager向上运行两次脚本

我的系统,Ubuntu 16.04,使用NetworkManager 。 为了挂接接口事件,我在/etc/network/if-up.d/放置了一个脚本。 脚本的头像如下所示:

 #!/bin/bash NETIF="enp2s0" if [ "$IFACE" != $NETIF ]; then exit 0 fi /some/cmd/output &>> /var/log/if-up.log iptables -F -t nat ... 

系统启动时,以及通过小程序手动重新启动networking,脚本运行两次。 这不会是这样的问题,但我正在运行一些需要一些时间的命令。

有什么我可以做,以避免这一点?

该脚本可能被称为IPv4一次,IPv6一次。

基于在我的机器上运行一个小脚本,下面是这些环境中的variables。 我应该提到的是在amd64上的networkingpipe理器版本1.2.6。

您可以使用$ADDRFAM来testing哪个呼叫是哪个。 其他variables也可能有用:

 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