Linux版本:Ubuntu 12.04
配置网口后重启网络,提示/etc/init.d/networking restart is deprecated。
$ sudo /etc/init.d/networking restart* Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces* Reconfiguring network interfaces... [ OK ]
$ sudo iptables-save$ sudo /etc/init.d/networking restart
但结果依然报错,跟直接执行/etc/init.d/networking restart一样。
还有一种方法是用命令service networking restart替代/etc/init.d/networking restart。zlf@zlf:/etc/init.d$ service networking restartstop: Unknown instance:start: Rejected send message, 1 matched rules; type="method_call", sender=":1.94" (uid=1000 pid=3847 comm="start networking ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init") zlf@zlf:/etc/init.d$ sudo service networking restartstop: Unknown instance:networking stop/waiting
区别是报错信息不同了,但目测也不起作用。
只好撸起袖子自己干了,打开/etc/init.d/networking看了看,这是个shell脚本,对restart的处理实际用的命令是ifdown -a和ifup -a。
case "$1" in start) /lib/init/upstart-job networking start ;; stop) check_network_file_systems -------略过------- force-reload|restart) process_options log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces" log_action_begin_msg "Reconfiguring network interfaces" ifdown -a --exclude=lo || true if ifup -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;;
ifdown -a Bring down all interfaces that are currently up.ifup -a Bring up all the interfaces defined with auto in /etc/network/interfaces
所以,对需要重启的网口,先确认/etc/network/interfaces配置中有auto标识,然后用ifdown -a | ifup -a实现重启。
比如eth0的配置auto eth0iface eth0 inet dhcp ----下略----
严重吐槽:一个小小的网卡重启功能,被Ubuntu改得鸡飞狗跳!
参考资料http://www.jscto.net/html/109.htmlhttp://comments.gmane.org/gmane.linux.debian.user/390797