Benutzerdefinierte Skripte unter /etc/profile.d und /etc/init.d – rhel6 und rhel7

Benutzerdefinierte Skripte unter /etc/profile.d und /etc/init.d – rhel6 und rhel7

Ich muss mein Skript beim Systemstart starten. Ich habe gelesen, dass die Skripte unter /etc/init.d und /etc/profile.d beim Systemstart aufgerufen werden. Wie unterscheiden sich diese Verzeichnisse?

Außer den beiden oben genannten Möglichkeiten können wir cron anscheinend auch so konfigurieren, dass der Dienst mit einem Eintrag wie @reboot /Pfad/zum Skript gestartet wird.

Bitte schlagen Sie die richtige/effiziente Methode zur Ausführung des Skripts beim Systemstart vor.

Antwort1

/etc/profile.dist ein herstellerspezifisches Mittel zum Anpassen der Umgebung einer Shell-Sitzung (Einstellungen PATHusw.) und steht normalerweise nicht mit dem Start eines Daemons in Zusammenhang. Manche würden sogar argumentieren, dass der Start eines Daemons in keiner Weise damit verbunden sein sollte /etc/profile.d, sodass benutzerdefinierte Shell-Anpassungen nicht dazu führen können, dass ein Daemon nicht geladen wird oder mit falschen Umgebungseinstellungen (Zeitzone, Gebietsschema usw.) geladen wird.

/etc/init.dist Teil des SystemV-Init-Systems, wie es unter Linux implementiert ist (Digital UNIX hat es dagegen unter platziert /sbin/init.d); man könnte ein richtiges Init-Skript schreiben (studieren Sie die vorhandenen Skripte, um zu sehen, wie man das richtig macht), das Ihren Daemon starten würde. Dadurch wären Sie sowohl mit RHEL6 als auch mit RHEL7 kompatibel.

Ein @rebootCron-Job könnte Ihren Daemon starten, systemdbietet unter RHEL7 allerdings bessere Verwaltungsfunktionen als ein Fire-and-Forget von Cron (was passiert, wenn der Daemon abstürzt? Soll er automatisch neu gestartet werden? Wie schlimm wäre es, wenn mehrere Instanzen gestartet würden? Wenn das Problem auftritt, welche Art von Sperre wäre erforderlich, um nur eine Instanz zu starten?).

verwandte Informationen