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