Назад | Перейти на главную страницу

Какой предпочтительный метод перезапуска сети в 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

Связанная ошибка # 550240 здесь

Что довольно неприятно. Чтобы перезапустить netwokring с удаленного компьютера, вероятно, лучшим и самым безопасным подходом будет выполнение следующего в пределах экранная сессия:

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

На сегодняшний день networking сценарий инициализации, restart и force-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 потому что я думаю, что, возможно, проблемы с перезапуском были как-то связаны с аппаратно-зависимыми задержками, но это не подтверждено, и мне немного стыдно обнародовать это как полуправило. Так что можете пропустить это, если чувствуете себя рационально!

Приведенная ниже команда хорошо работает в серверной среде без выдачи предупреждений. Он реализует как запросы остановки, так и запуска в сетевой службе.

sudo service networking start

как насчет nohup sh -c "ifdown -a && ifup -a"

В Debian Wheezy,

service networking restart

кажется, делает то, что ожидается, и не жалуется.

Думаю, в Jessie с systemd все может быть иначе.

Если вы не можете найти причину, по которой сеть не перезапускается, сделайте это в подробном режиме внутри screen сессия:

ifdown -v --force eth0; ifup -v eth0