Перезапуск сети в Debian Jessie

14

Я хотел бы знать, как правильно перезапустить сетевой сервис в Debian Jessie. Я знаю, что я могу использовать:

service networking restart

или

/etc/init.d/networking restart

что в любом случае дал мне проблемы с соединением SSH, или

invoke-rc.d networking restart

и другие два метода с systemctl и с ifup / ifdown .

Но какой правильный способ сделать это?

cloud81
источник
Попробуйте спросить на unix.stackexchange.com , они лучше знают различные варианты Linux и диалекты.
Массимо
1
Да, и первые три команды в основном эквивалентны, serviceи invoke-rc.dвызывают только /etc/init.d/servicenameте параметры, которые им были даны.
Массимо
Также см. Здесь: unix.stackexchange.com/questions/136481/… .
Массимо

Ответы:

11

Я бы использовал serviceкоманду, потому что она более согласована в разных дистрибутивах. Итак, из упомянутых вами команд я бы выбрал вариант:

service networking restart

И я определенно запустил бы его в screenсеансе или другими способами гарантировал, что он не будет завершен в случае, если вы потеряли соединение с оболочкой, в которой вы его набрали. (Я попытался потерять соединение с машиной, войдя в систему sshи затем перезапустив сеть только для того, чтобы соединение ssh было разорвано, пока сеть не работала, и отправил HUP так service, чтобы он больше не вызывал сеть.)

В прошлом были системы, в которых serviceбыла простая оболочка вокруг сценариев, /etc/init.dи первые две ваши команды делали одно и то же. Но в настоящее время существуют системы, в которых serviceиногда можно делать что-то другое, и в целом serviceлучше знают, что делать с вашим конкретным дистрибутивом. И invoke-rc.dтакже зависит от распределения.

Несмотря serviceна то, что он наиболее похож во всех дистрибутивах, имена сервисов могут отличаться. Например, есть дистрибутивы, где названа служба, networkи другие, где она названа networking. И в некоторых конфигурациях может быть более подходящим network-manager, чем перезагрузить networking.

kasperd
источник
Спасибо за объяснение, очень понятно! В следующий раз я буду использовать экран вместе с сервисной командой, упомянутой ранее.
cloud81
3
не рекомендуется ли вообще использовать сервис в системах systemd?
greenone83
@ greenone83 На странице руководства нет указания об устаревшей команде. На всех системах, где я его видел, это был удобный скрипт-обертка для любой системы инициализации, которую использовал дистрибутив. И он был обновлен, так как init был переработан. Это означает, что теперь вы можете использовать ту же serviceкоманду, что и 10 лет назад, и она будет делать правильно, даже если базовые сценарии инициализации ведут себя совершенно иначе.
Касперд
@kasperd это в значительной степени объясняет мою точку зрения ... unix.stackexchange.com/questions/240528/… вы можете сделать это ... но тогда вы можете помешать systemd
greenone83
1
Я поменял кабели локальной сети, которые прервали сетевое соединение. Перезапуск системы systemctl ничего не сделал, но перезапуск службы сети сработал. Я использую Debian Jessie.
aSystemOverload