Я хотел бы знать, какой метод перезапуска сетевой службы в Debian Jessie является правильным. Я знаю, что могу использовать:
service networking restart
или
/etc/init.d/networking restart
это в любом случае дало мне проблемы с соединением ssh, или
invoke-rc.d networking restart
и два других метода с systemctl и с ifup / ifdown.
Но как правильно это сделать?
Я бы использовал service
команда, потому что она более согласована в разных дистрибутивах. Итак, из упомянутых вами команд я бы выбрал следующий вариант:
service networking restart
И я бы определенно запустил его в screen
session или другими способами убедитесь, что он не завершится, если вы потеряете соединение с оболочкой, в которой вы его набрали. (Я попытался потерять соединение с машиной, войдя в систему с ssh
а затем перезапустите сеть только для того, чтобы соединение ssh было прервано, пока сеть была отключена, и отправьте HUP на service
так, чтобы он больше не запускал сеть.)
В прошлом были системы, в которых service
была простой оболочкой для скриптов в /etc/init.d
и первые две ваши команды будут делать то же самое. Но в настоящее время существуют системы, в которых service
иногда будет делать что-то другое, и в целом service
лучше знает, что делать с вашим конкретным дистрибутивом. И invoke-rc.d
также зависит от распределения.
Хотя service
является наиболее похожим в разных дистрибутивах, имена сервисов могут отличаться. Например, есть дистрибутивы, в которых служба называется network
и другие, где это названо networking
. И в некоторых конфигурациях может быть более целесообразным перезапуск network-manager
скорее, чем networking
.