Gibt es einen wirklichen Unterschied zwischen /etc/init.d/networking restart
und invoke-rc.d networking restart
(Debian)?
debian
init-script
services
init.d
Lucas Kauffman
quelle
quelle
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.Antworten:
Was
invoke-rc.d
tut, 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.d
wird diese lokalen Richtlinien einhalten und keinen Daemon starten, wenn der Runlevel falsch ist.quelle
Es gibt keinen wirklichen Unterschied [1]. Der
invoke-rc.d
Befehl 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.d
Befehl 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.quelle
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:
Nach der Erstellung chmod 711 'der Dateiname' [net]
quelle