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
