Erstens ist eine Klarstellung angebracht:
- init.d ist das Verzeichnis, in dem Skripts zur Dienstesteuerung gespeichert sind, die das Starten und Beenden von Diensten wie
httpdoder steuerncron
- rc.local ist ein Dienst, der das Ausführen von beliebigen Skripten als Teil des Systemstartprozesses ermöglicht
In Bezug darauf, ob es besser ist, Ihr Skript zu verwenden rc.localoder cronauszuführen, vermute ich, dass es eher eine Frage der Ästhetik als der Praktikabilität ist. cronist als Taskplaner eine Methode zur Durchführung von Wartungs- oder Instandhaltungsarbeiten an einem Computer, z. B. zur Überprüfung von Updates, zur Bereinigung von Caches oder zur Durchführung von Sicherheitsüberprüfungen. Dies bedeutet nicht, dass es auf die Ausführung dieser Funktionen beschränkt ist, da jedes Skript oder jeder Befehl ausgeführt werden kann, der zum angegebenen Zeitpunkt gewünscht wird (z. B. @reboot).
Mit rc.localauf der anderen Seite würde fällt mehr innerhalb einer Systemkonfiguration Art der Aufgabe, wie rc.localvon den Maschinen ausgeführt wurde System init, ist in der Regel verantwortlich für die Maschinen - Netzwerk Konfigurationseinstellung, Dienstleistungen oder Umgebungen (aber auch hier sind einfach nicht darauf beschränkt diese Aufgabe).
Beide Punkte sollten jedoch durch die Tatsache gemildert werden, dass nicht alle init-Systeme einen rc.localMechanismus und nicht alle cron-Daemons einen @rebootpsuedo-Tag bieten .
Bonuspunkte
Wie bereits erwähnt, init.dist dies das Verzeichnis, das die Skripts enthält, die Dienste steuern, die auf Ihrem System gestartet oder gestoppt werden können (zumindest auf Computern, die ein SysVSystem vom Typ init verwenden). Abhängig von Ihrem Init-System und dem Zweck Ihres Skripts kann es sinnvoll sein, Ihr Skript in ein Init-Skript zu konvertieren , das auf die gleiche Weise wie ein Dienst ausgeführt wird. Dies hängt jedoch stark von Ihrem Init-System ab, da das Framework für die Erstellung dieser Dateien sehr unterschiedlich sein kann.
Letztes Wort
Es sollte auch beachtet werden, dass Bash-Skripte normalerweise mit einem Suffix von .shanstatt enden .txt, da dies sofort anzeigt, dass die Datei ein Shell-Skript anstelle einer Textdatei ist. Davon abgesehen , vorausgesetzt, es hat entweder ein shebang ( #!/bin/bash) am Anfang der Datei oder heißt so bash /path/to/script.whatever, sollte es für die Ausführung des Skripts keine Rolle spielen.