Linux systemd: Unit Files
Um ein Skript bei Systemstart des SLES12 Server mit systemd aus zu führen benötigt man zwei Dinge:
1. das Skript welches man ausführen möchte und 2. ein „.service“ File (Unit-File) für den Systemd.
Wir legen beispielsweise ein Skript für die Ausführung unter „/root/bin/skript.sh“.
Das .service File wird unter dem Verzeichnis /etc/systemd/system abgelegt. Beispiel: /etc/systemd/system/skript.service
Anschließend sieht das Unitfile hierfür folgendermaßen aus:
[Unit]
Description=Skript für Systemboot
[Service]
Type=oneshot
ExecStart=/root/bin/skript.sh
[Install]
WantedBy=multi-user.target
Dies wäre die einfachste Art ein Skript bei Systemstart aus zu führen.
Falls es sich um einen Service handelt der gestoppt und gestartet werden soll könnte das dementsprechende Skript folgendermaßen aussehen:
start() {
exec hierdasexecutable start
}
stop() {
exec hierdasexecutable stop
}
case $1 in
start|stop) "$1" ;;
esac
Das dazu passende .service (Unit File) könnte dann folgendermaßen aussehen:
[Unit]
Description=Skript für Systemboot
[Service]
Type=oneshot
ExecStart=/root/bin/skript.sh start
ExecStop=/root/bin/skript.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Anschließend kann man sein Skript steuern mit:
systemctl start skript.service | systemet stop skript.service
Für den nächsten Systemstart einplanen:
systemctl enable skript.service