Unterschied zwischen /etc/init.d/networking Neustart und invoke-rc.d Netzwerkneustart

8

Gibt es einen wirklichen Unterschied zwischen /etc/init.d/networking restartund invoke-rc.d networking restart(Debian)?

Lucas Kauffman
quelle
3
Es gibt auch service networking restart. Leider weiß ich nicht genug, um Ihnen einen detaillierten Vergleich der drei Methoden zu geben, außer dass das Ausführen des /etc/init.d/Skripts "niedriger" ist als die anderen.
jw013

Antworten:

8

Was invoke-rc.dtut, ist in seiner Manpage dokumentiert. Es handelt sich um einen Wrapper zum direkten Ausführen des Init-Skripts, es wird jedoch auch eine Richtlinie angewendet, die dazu führen kann, dass der Befehl nicht ausgeführt wird, basierend auf dem aktuellen Runlevel und der Frage, ob der Daemon in diesem Runlevel ausgeführt werden soll.

Standardmäßig unterscheidet Debian nicht zwischen den Runlevels 2-5, aber als lokaler Administrator können Sie ändern, was in jedem Runlevel ausgeführt wird. invoke-rc.dwird diese lokalen Richtlinien einhalten und keinen Daemon starten, wenn der Runlevel falsch ist.

camh
quelle
1

Es gibt keinen wirklichen Unterschied [1]. Der invoke-rc.dBefehl bietet einfach eine nette, praktische Oberfläche zum Ausführen der init.d-Skripte, wodurch Sie die mühsame Verantwortung ersparen, den vollständigen Pfad zu dem Skript einzugeben, das Sie ausführen möchten! Beide Aufrufe erzielen das gleiche Endergebnis.

[1] Beachten Sie, dass der invoke-rc.dBefehl vor dem Aufrufen des angeforderten Dienstskripts Überprüfungen durchführt, um sicherzustellen, dass es ausgeführt wird. Er schützt vor dem Aufrufen von Skripten auf der falschen Runlevel usw. In diesem Sinne gibt es einen Unterschied. Er schützt Sie vor dem Aufnehmen Ihres Skripts Füße etwas. Die Manpage sollte sich in dieser Hinsicht als lehrreich erweisen.

D_Bye
quelle
0

Eine andere einfache Methode, um den Neustart des Netzwerks durchzuführen, besteht darin, die folgende Bash-Datei zu erstellen, die in meinem Fall [net] heißt: /etc/init.d/net

Das Skript:

#!/bin/sh -e
invoke-rc.d networking stop ;  invoke-rc.d networking start ; ifup eth0 

#Add whatever interfaces you have installed. ie: ifup eth0 wlan0 etc 

Nach der Erstellung chmod 711 'der Dateiname' [net]

user208132
quelle