RHEL5.X 重启网卡出现./network-functions: line 78: .: ifcfg-eth0: file not foundphp
错误信息:bash
[root@localhost network-scripts]# service network restart
Shutting down interface eth0: ./network-functions: line 78: .: ifcfg-eth0: file not found
[ OK ]
Shutting down loopback interface: ./network-functions: line 78: .: ifcfg-lo: file not found
[ OK ]
Bringing up loopback interface: ./network-functions: line 78: .: ifcfg-lo: file not found
Missing config file ifcfg-ifcfg-lo.
[ OK ]
Bringing up interface eth0: ./network-functions: line 78: .: ifcfg-eth0: file not found
Missing config file ifcfg-ifcfg-eth0.
[ OK ]网络
因为更新了bash版本。
/etc/sysconfig/network-scripts/network-functions fails under bash 4.1.
The reason is that bash 4 fixed a bug in the source function (http://tiswww.case.edu/php/chet/bash/COMPAT) that cause the function to include the current directory in the path when sourcing files.ide
解决方法:
在78行中,修改 . $CONFIG 为 . ./$CONFIG
Line 78 in network-functions is ". $CONFIG" which means it wouldn‘t work if bash hadn‘t that bug.
It should be changed to ". ./$CONFIG" which solves the problem.oop
看了代码后,发现要解决该问题,只须要作以下操做:
打开文件vi /etc/sysconfig/network-scripts/network-functions,改变以下行
第69行:
将 PARENTCONFIG='echo $CONFIG | sed 's/-[^-]*$//g'
改成 PARENTCONFIG="/etc/sysconfig/network-scripts/"rest
第70行:
将 PARENTDEVNAME=${PARENTCONFIG##/ifcfg-}
改成 PARENTDEVNAME=${PARENTCONFIG##/}ip
第78行:
将 . $CONFIG改成
. ./$CONFIGci
再次重启网络,没有发现以下报错了get