CentOSnetworking接口后置脚本不执行

我正在运行CentOS 7.2,我正在努力获得一个简单的脚本来执行任何接口的ifup。

我的/ sbin / ifup-local如下所示:

[root@oracle2 ~]# cat /sbin/ifup-local #!/bin/bash if [[ "$1" == "eth0" ]] then exec /vpnup fi [root@oracle2 ~]# 

引用的脚本/ vpnup看起来像这样:

 [root@oracle2 ~]# cat /vpnup #!/bin/bash # # CompanyX Production L2TP VPN - UP # # echo -e "\n" echo -e "PLEASE WAIT\n" echo -e "Dialling Production L2TP VPN... \n" echo -e ".........................................\n" ipsec auto --up L2TP-PSK && echo "c qvprodvpn" > /var/run/xl2tpd/l2tp-control echo -e ".........................................\n" echo "Connected..." echo "Adding local static route to manage VPN bound traffic..." sleep 6s ip route add 10.10.24.0/24 via 10.10.24.51 echo "Route added..." echo -e "...\n" [root@oracle2 ~]# 

相当简单,脚本在命令行调用时工作正常。 它只是拨号到我已经设置的L2TP VPN,让这个盒子访问他们的networking的另一部分的生产局域网。

但是,如果我执行“服务networking重启”或者确实是“systemctl restart network.service”,VPN接口不会出现,ip route也不会被添加。 如果我手动执行ifdown eth0,然后ifup eth0,它也不会像预期的那样运行脚本。

如果我执行“/ sbin / ifup-local eth0”脚本运行正常,所以我知道我的脚本是好的,我知道我的ifup本地是好的。

我错过了什么明显的? 我以前从来没有使用过前/后的脚本,但我总是认为他们很简单…我错了吗?

确保你的ifcfg-eth0脚本包含

 NM_CONTROLLED=no 

否则,调用systemctl restart network或者ifup eth0将不会执行ifup-pre-localifup-ethifup-postifup-local等等。 不过,他们仍然会被要求。