Vor systemd kann man sich immer weniger verstecken. Wozu auch. Ich finde die Konfiguration und einige Funktionen von systemd wirklich gut. Eigene Startkonfigurationen sind an sich ebenfalls relativ leicht umzusetzen.

Recht einfach…

… sind Dienste zu steuern. Was jetzt nur wenig verwundert, da diese Aufgabe ja die Kernaufgabe von systemd ist. Dienste … also Programme die laufen, die man überwachen kann.

Und wenn es kein Dienst ist?

Ein bisschen nachlesen muss man, wenn man ein bash Script beim Systemstart ausführen und dieses dann auch mit „start“ und „stop“ über systemd managen möchte. Problem dabei ist, dass systemd wie bereits gesagt per Default ein „laufendes“ Programm erwartet. Ein Script läuft (meist), tut irgendwelche tollen Dinge und beendet sich. Da ist kein Prozess der beobachtet werden kann etc. .

Möglich ist es natürlich. Und zwar so:

[Unit]
Description=Firewall
After=network.target

[Service]
ExecStart=/usr/sbin/firewall start
ExecStop=/usr/sbin/firewall stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Wichtig dabei ist „RemainAfterExit=yes“. Dieser Parameter bewirkt, dass der Dienst

is considered active even when all its processes exited

(https://www.freedesktop.org/software/systemd/man/systemd.service.html)

Das war es schon.