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
httpd
oder 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.local
oder cron
auszuführen, vermute ich, dass es eher eine Frage der Ästhetik als der Praktikabilität ist. cron
ist 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.local
auf der anderen Seite würde fällt mehr innerhalb einer Systemkonfiguration Art der Aufgabe, wie rc.local
von 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.local
Mechanismus und nicht alle cron-Daemons einen @reboot
psuedo-Tag bieten .
Bonuspunkte
Wie bereits erwähnt, init.d
ist 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 SysV
System 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 .sh
anstatt 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.