Eu usaria o comando service
porque é mais consistente em diferentes distribuições. Então, dos comandos que você mencionou, a variante que eu usaria é:
service networking restart
E eu gostaria de executá-lo dentro de uma sessão screen
ou por outros meios, certifique-se de que ele não será concluído caso você tenha perdido a conexão com o shell em que você o digitou. (Tentei perder a conectividade com uma máquina fazendo logon com ssh
e, em seguida, reiniciando a rede apenas para que a conexão ssh seja encerrada enquanto a rede estava inativa e envie um HUP para service
, de forma que não atinja a rede novamente.)
No passado, havia sistemas em que service
era um simples invólucro em torno dos scripts em /etc/init.d
e os dois primeiros de seus comandos fariam exatamente a mesma coisa. Mas hoje em dia existem sistemas em que service
às vezes faz algo diferente, e em geral service
sabe melhor o que fazer em sua distribuição particular. E invoke-rc.d
também depende da distribuição.
Embora service
seja o mais semelhante entre as distribuições, ainda é possível que os nomes de serviço sejam diferentes. Por exemplo, há distribuições em que o serviço é denominado network
e outras, onde é denominado networking
. E em algumas configurações, pode ser mais apropriado reiniciar network-manager
em vez de networking
.