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