Wie man automatisch ein Shell-Skript beim Start von systemd Linux ausführt

Die folgende Konfiguration beschreibt ein einfaches Beispiel, wie man ein Shell-Skript während des Starts von systemd Linux ausführt. Es kann verschiedene Gründe geben, warum man ein Shell-Skript während des Linux-Starts ausführen möchte, z.B. um einen bestimmten benutzerdefinierten Dienst zu starten, den Festplattenspeicher zu überprüfen, ein Backup zu erstellen usw.
Das folgende Beispiel dient als grundlegende Vorlage, die später an Ihre speziellen Bedürfnisse angepasst werden kann. Im folgenden Beispiel wird der Speicherplatz eines /home/ Verzeichnisses während des Bootvorgangs überprüft und ein Bericht in das /root/ Verzeichnis geschrieben.

Systemd-Diensteinheit

Zunächst müssen wir ein systemd-Startskript erstellen, z.B. disk-space-check.service, und es im Verzeichnis /etc/systemd/system/ ablegen. Ein Beispiel für ein solches systemd-Startskript finden Sie unten:

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • After: Weist systemd an, wann das Skript ausgeführt werden soll. In unserem Fall wird das Skript ausgeführt, nachdem die mysql-Datenbank gestartet wurde. Ein anderes Beispiel könnte network.target usw. sein.
  • ExecStart: Dieses Feld gibt den vollständigen Pfad des auszuführenden Skripts an
  • WantedBy: In welches Boot-Ziel soll die systemd-Einheit installiert werden

Das obige ist ein absolutes Minimum, das unsere systemd-Diensteinheit enthalten sollte, um unser Skript zur Boot-Zeit auszuführen. Für weitere Informationen und zu verwendende Optionen siehe systemd.service Manual Page:

$ man systemd.service

Startup-Shell-Skript

Als Nächstes erstellen wir unser benutzerdefiniertes Shell-Skript, das beim Start von systemd ausgeführt werden soll. Der Speicherort und der Name des Skripts sind bereits von der Service Unit als /usr/local/bin/disk-space-check.sh definiert. Der Inhalt des Skripts kann einfach sein wie:

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
Linux Systems Analyst gesucht !
Das UAF Geophysical Institute, sucht einen erfahrenen Linux Systems Analysten, um sein Team von Forschungs-Cyberinfrastruktur-Analysten und Ingenieuren zu verstärken. STANDORT: Fairbanks, Alaska, USA
JETZT BEWERBEN

Konfigurieren und installieren

Bevor wir unser System neu starten, müssen wir unser Skript ausführbar machen:

# chmod 744 /usr/local/bin/disk-space-check.sh

Als Nächstes installieren Sie die systemd Service Unit und aktivieren sie, damit sie beim Booten ausgeführt wird:

# chmod 664 /etc/systemd/system/disk-space-check.service# systemctl daemon-reload# systemctl enable disk-space-check.serviceCreated symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.

Wenn Sie Ihr Skript vor dem Neustart testen möchten, führen Sie es aus:

# systemctl start disk-space-check.service# cat /root/disk_space_report.txt Thursday 7 July 11:30:25 AEST 20161.5G /home/

Alles bereit. Nach dem Neustart Ihres Linux-Systems wird die oben genannte systemd-Einheit ein Shell-Skript aufrufen, das während des Bootvorgangs ausgeführt wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.