Crmgo Blog

Automatisches Starten eines Skripts in CentOS 7 mit systemd

Automatisches Starten eines Skripts in CentOS 7 mit systemd

Systemd bringt das Konzept der systemd-Units mit. Units werden durch Konfigurationsdateien dargestellt, die in einem der folgenden Verzeichnisse abgelegt sind: /usr/lib/systemd/system/ – Units aus installierten RPM-Paketen. /run/systemd/system/ – zur Laufzeit erstellte Units. Dieses Verzeichnis hat Vorrang vor dem Verzeichnis mit den aus Paketen installierten Units. /etc/systemd/system/ – zur Laufzeit erstellte Units…

Automatisches Starten eines Skripts in CentOS 7 mit systemd

Systemd führt das Konzept der systemd-Units ein. Units werden durch Konfigurationsdateien dargestellt, die in einem der folgenden Verzeichnisse gespeichert sind:

  • /usr/lib/systemd/system/ – Units aus installierten RPM-Paketen.
  • /run/systemd/system/ – zur Laufzeit erstellte Units. Dieses Verzeichnis hat Vorrang vor dem Verzeichnis mit den aus Paketen installierten Units.
  • /etc/systemd/system/ – vom Systemadministrator erstellte und verwaltete Units. Dieses Verzeichnis hat Vorrang vor dem Verzeichnis mit zur Laufzeit erstellten Units.

 

 

Wir erstellen die Datei für unseren Dienst:

# touch /etc/systemd/system/routing-settings.service # chmod 664 /etc/systemd/system/routing-settings.service

mit folgendem Inhalt:

[Unit] Description=Routing Settings Service After=network.target

[Service]
Type=oneshot
User=root
ExecStart=/root/routing.sh

[Install]
WantedBy=multi-user.target

User=root – Ausführung als root! Geben Sie den Benutzer an, unter dem Ihr Skript ausgeführt werden soll (oder lassen Sie die Angabe weg). Mein Skript muss als root ausgeführt werden. Das ist nicht besonders erfreulich, da ich die Positionierung des Skripts und die Zugriffsrechte darauf streng kontrollieren muss.

Type=oneshot bedeutet, dass der Prozess abgeschlossen wird, bevor weitere Units gestartet werden. Dies ist für Skripte durchaus geeignet.

Wir prüfen dies:

# systemctl start routing-settings

Wenn nach der Ausführung des Skripts das erwartete Ergebnis sichtbar ist, aktivieren wir diesen „Dienst“ für den automatischen Start:

# systemctl enable routing-settings

Wir versuchen einen Neustart. Es sollte funktionieren.

Wir schauen nach, wann unser Dienst gestartet wurde:

# systemctl status routing-settings

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.