systemd: Wie kann ich beim Start eines Dienstes ein Skript ausführen, ohne die Dienstdefinition zu bearbeiten?

systemd: Wie kann ich beim Start eines Dienstes ein Skript ausführen, ohne die Dienstdefinition zu bearbeiten?

Szenario:

Vor und nach dem Start von MariaDB möchten wir ein Skript ausführen, um einige Konfigurationsdateien zu generieren und zu löschen. Idealerweise würden wir dies tun, ohne die vom Paketmanager installierte Kerndatei mariadb.service zu berühren.

dh

service mysql start

Sollte automatisch ein anderes Skript/einen anderen Dienst ausführenVorStarten und ein anderes Skript/Dienstnachbeginnend.

Irgendwelche Vorschläge?

Antwort1

Wenn Sie verwenden, systemd edit servicename.servicekönnen Sie lokale Überschreibungen auf Dinge in der Einheit anwenden. Für Ihre Anfrage möchten Sie diese Werte möglicherweise anpassen.

[Service]
ExecStartPre=beforestuff
ExecStopPost=afterstuff

Wenn Sie die Änderungen mit dem Bearbeitungsbefehl überschreiben, werden sie wahrscheinlich gespeichert /etc/systemd/system/servicename.service.d/override.conf.

Links:

verwandte Informationen