Каков предпочтительный способ перезапустить сеть в Ubuntu и Debian?

37

Когда я перезагружаю сеть, используя:

/etc/init.d/networking restart

Я получаю это предупреждение:

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

Итак, каков наилучший способ перезагрузить сеть после внесения изменений сейчас?

Эта проблема также относится к Debian, поскольку пакет netbase наследуется от debian.

Антоний Блох
источник

Ответы:

27

Это просто говорит о том, что вариант перезапуска уходит

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

Обратите внимание, что есть только одна строка! Это важно при запуске перезагрузки сети через сеть.

Майк
источник
28
две команды: - / плохая идея, если вы находитесь в удаленном. Лучше использовать один вкладыш:/etc/init.d/networking stop; /etc/init.d/networking start
hmontoliu
@hmontoliu: с другой стороны, кажется целесообразным использовать устаревший перезапуск, поскольку вы не можете забыть начальную команду
mbx
1
Если вы находитесь в удаленном, вы всегда должны использоватьscreen
Avio
5
Экран не очень поможет, если вы отключите сеть на удаленном сервере. В этом случае вам придется искать какой-то прямой доступ, что не всегда удобно.
metakermit
1
stopи start, очевидно, не являются устаревшими, но используются в сочетании, они имеют ту же потенциальную проблему, что и restartраньше.
Хокан Линдквист
19

Запустите команду 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
hmontoliu
источник
В самом деле? Перезагрузка полезна, когда вы работаете удаленно!
Антониус Блох
2
Смотрите мое редактирование. Я согласен, что пуленепробиваемый перезапуск будет лучше, чем стоп + старт
hmontoliu
Я думаю, что стоит отметить, что stop+, startкажется, делает то же самое, restartчто и он. Похоже, он не является более безопасным, за исключением того, что не рекомендуется использовать устаревшую опцию (не рекомендуется специально для предотвращения этой операции).
Хакан Линдквист
5

Я использую nohup sh -c "/etc/init.d/networking stop; sleep 2; /etc/init.d/networking start". Я добавляю, sleep 2потому что я думаю, что, возможно, проблемы с перезапуском имели какое-то отношение к аппаратно-зависимым задержкам, но это неподтвержденное и практическое правило. Мне несколько стыдно обнародовать. Таким образом, вы можете пропустить это, если вы чувствуете себя рационально!

Эдуардо Иванец
источник
так что в основном вы говорите, что я должен псевдоним restart = "nohup sh -c /etc/init.d/networking stop; sleep 2; /etc/init.d/networking start", потому что кто-то, использующий Debian, думает, что его или ее работа будет ли на линии, если мы действительно будем развивать Linux за пределами самой хобби?
1
Не за что. Как ты сумасшедший!
Эдуардо Иванец
3

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

sudo service networking start
Erick
источник
Похоже, это не делает остановку и запуск. Во всяком случае, это не для меня в Debian Wheezy. Может быть, это в каком-то другом дистрибутиве.
mivk
Он отлично работает в Ubuntu
Эрик
2

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

Dazz
источник
1

В Debian Wheezy,

service networking restart

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

Я думаю, у Джесси с systemd все может быть по-другому.

mivk
источник
С systemdего systemctl restart networkingiirc, но «старый» serviceспособ все еще работает.
wb9688
0

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

ifdown -v --force eth0; ifup -v eth0
sanmai
источник