Ich möchte eine permanente iptables
Regel zu meiner neuen hinzufügen VPS
, und nach einer kurzen Google-Suche war ich überrascht, dass es zwei Stellen gibt, an denen diese Regel hinzugefügt werden kann, die identisch zu sein scheinen: /etc/rc.local
und /etc/init.d/rc.local
. Vielleicht weiß jemand warum wo zwei Stellen für einfachen Startcode zu platzieren sind? Ist es Linux-spezifisch (aber Ubuntu hat beides!)? Oder ist einer von ihnen veraltet?
configuration
startup
grigoryvp
quelle
quelle
/etc/rc.local
eine Weile zurück.Antworten:
/etc/init.d
wird aus Gründen der Abwärtskompatibilität mit Sysvinit-Inhalten auf Ubuntu gepflegt. Wenn Sie sich das anschauen, werden/etc/init.d/rc.local
Sie sehen (auch von einem 12.04 LTS Server):Und "Run /etc/rc.local" ist genau das, was es tut. Die Gesamtheit von
/etc/rc.local
ist:Ich vermute, der Zweck dabei ist, einen absolut einfachen Ort zu bieten, an dem Shell-Befehle, die Sie beim Booten ausführen möchten, abgelegt werden können, ohne sich mit dem Stop-Start-Service-Zeug befassen zu müssen, das sich in befindet
/etc/init.d/rc.local
.Es handelt sich also tatsächlich um einen Dienst, der als solcher ausgeführt werden kann. Ich habe eine
echo
Zeile hinzugefügt zu/etc/rc.local
und:Ich glaube jedoch nicht, dass es von irgendetwas im
/etc/init
Verzeichnis von upstart (not init.d!) Referenziert wird :Es gibt ein paar "rc" -Dienste in upstart:
Aber keine davon scheint irgendetwas mit rc.local zu tun zu haben.
quelle
Dies ist eher eine verteilungsspezifische Sache. (wie, Sie werden nicht anders rc.local in CentOS finden).
Kommen wir nun zu Ihrer eigentlichen Frage. Ich denke, wenn Sie irgendetwas in /etc/init.d/rc.local hinzufügen, wird es als "Dienst" gestartet, wohingegen alles in /etc/rc.local dieses Skript einfach beim Booten startet.
Ich bin mir nicht ganz sicher, warum Ubuntu beide weiterhin unterstützt. (Vielleicht könnte jemand anderes etwas Licht über diesen Teil werfen !!)
quelle
/etc/init.d/rc.local
macht das Stop-Start-Zeug an/etc/rc.local
(siehe meine Antwort für weitere Details)./etc/rc.local
Skript der ausführbare Prozess ist, der vom/etc/initd/rc.local
Skript gesteuert wird , ist dies genauso wie (z. B.)/bin/syslog
der ausführbare Prozess, der von gesteuert wird/etc/initd/syslog
. Sie sagen ausdrücklich, dass/etc/rc.local
es sich nur um ein Boot-Skript handelt und/etc/initd/rc.local
nicht um einen vollständig separaten Service auf Run-Level-Ebene.