Gibt es einen wirklichen Unterschied zwischen /etc/init.d/networking restart
und invoke-rc.d networking restart
(Debian)?
Gibt es einen wirklichen Unterschied zwischen /etc/init.d/networking restart
und invoke-rc.d networking restart
(Debian)?
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.
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.
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]
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.