RHEL5.X 重啓網卡出現./network-functions: line 78: .: ifc

RHEL5.X 重啓網卡出現./network-functions: line 78: .: ifcfg-eth0: file not found

錯誤信息:

[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.

解決方法:
在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.

看了代碼後,發現要解決該問題,只需要做如下操作:
打開文件vi /etc/sysconfig/network-scripts/network-functions,改變如下行
第69行:
將 PARENTCONFIG='echo $CONFIG | sed 's/-[^-]*$//g'
改爲 PARENTCONFIG="/etc/sysconfig/network-scripts/"

第70行:
將 PARENTDEVNAME=${PARENTCONFIG##/ifcfg-}
改爲 PARENTDEVNAME=${PARENTCONFIG##
/}

第78行:
將 . $CONFIG改爲
. ./$CONFIG

再次重啓網絡,沒有發現如下報錯了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章