當前位置: 首頁>>技術教程>>正文


在Ubuntu和Debian中重啟網絡的首選方法是什麽

, ,

問題描述

當我使用以下方法重新啟動網絡時:

/etc/init.d/networking restart

我收到此警告:

 Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces

那麽,現在進行更改後重新啟動網絡的最佳方法是什麽?

該問題也適用於Debian,因為netbase軟件包是從debian繼承的。

最佳思路

隻是說重新啟動選項不見了

/etc/init.d/networking stop; /etc/init.d/networking start

注意隻有一行!通過網絡運行網絡重新啟動時,這一點很重要。

次佳思路

運行不帶參數的init.d命令,它將告訴您用法:

~# /etc/init.d/networking 
Usage: /etc/init.d/networking {start|stop}

似乎不建議重新啟動

至少由於以下原因,它在Debian中也不推薦使用:

netbase (4.38) unstable; urgency=low

  * Create /etc/sysctl.d/bindv6only.conf on upgrades and new installs
    to set net.ipv6.bindv6only=1.
  * Made the init script check for swap over the network. (Closes: #540697)
  * Temporarily depend on initscripts to work around a bug in multistrap.
    (Closes: #556399)
  * etc-services: added sieve (4190/tcp).
  * etc-services: removed sieve (2000/tcp). (Closes: #555664)
  * Made the init script warn that using the force-reload and restart
    parameters is not a good idea. (Closes: #550240)

 -- Marco d'Itri <md@linux.it>  Sun, 06 Dec 2009 17:09:41 +0100

The related bug #550240 here

真討厭要從遠程重新啟動netwokring,最好的和最安全的方法將在屏幕會話中運行以下命令:

~# /etc/init.d/networking stop; /etc/init.d/networking start

從今天的networking初始化腳本開始,restartforce-reload在大多數情況下都可以使用。我認為忽略警告並仍然使用重新啟動是相當安全的。但是,我將使用停止+開始方式:-)

case "$1" in
start)
    process_options

    log_action_begin_msg "Configuring network interfaces"
    if ifup -a; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

stop)
    check_network_file_systems
    check_network_swap

    log_action_begin_msg "Deconfiguring network interfaces"
    if ifdown -a --exclude=lo; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

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
    ;;

*)
    echo "Usage: /etc/init.d/networking {start|stop}"
    exit 1
    ;;
esac

第三種思路

我使用nohup sh -c "/etc/init.d/networking stop; sleep 2; /etc/init.d/networking start"。我添加sleep 2是因為我認為重新啟動的問題可能與hardware-dependent延遲有關,但這尚未得到證實,semi-rule的經驗使我有些羞愧以至於無法公開。因此,如果您感到理性,可以跳過該步驟!

第四種思路

下麵的命令在服務器環境中運行良好,不會引發警告。它在網絡服務上實現了停止和啟動請求。

sudo service networking start

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/11222.html,未經允許,請勿轉載。