Auswirkungen eines Dienstes, der nicht mit shutdown.target in Konflikt steht

Auswirkungen eines Dienstes, der nicht mit shutdown.target in Konflikt steht

<Kurz zusammengefasst>
Ich optimiere einen NFSv4-only-Dateiserver basierend auf dem aktuellen Debian 10 Buster und dem Kernel ntfsd; systemd v241. Das nfs-kernel-serversystemd-Skripting des Pakets aus der Distribution kommt mir etwas seltsam vor. Einige Dienstdefinitionsdateien, einschließlich der nfs-server.serviceselbst, verfügen über die Einstellung DefaultDependencies=no, sodass die Einheit die Conflicts=shutdown.targetAbhängigkeit gemäß systemd.service(5) nicht automatisch erhält:

[Mit DefaultDependencies=yes] haben [S]ervice-Units Abhängigkeiten [...] vom Typ Conflicts=und Before=von shutdown.target. Diese stellen sicher, dass normale Service-Units [...] vor dem Herunterfahren des Systems sauber beendet werden.

Keines davon wird explizit bereitgestellt, anders als ich es in anderen systemd-eigenen Paketen gesehen habe. Der Befehl

systemctl show nfs-server.service | egrep '^(Want|Requ|Bind|Bound|Before|After|Confl)'

bestätigt, dass dies tatsächlich zutrifft: Es gibt keine solchen Abhängigkeiten. Das Handbuch fährt fort:

Nur Dienste, die mit dem frühen Booten oder späten Herunterfahren des Systems zu tun haben, sollten diese Option deaktivieren.

was beim NFS-Server genau nicht der Fall ist, da er erst mit dem Dienst beginnen kann, wenn das Netzwerk vollständig hochgefahren ist, und wahrscheinlich die Annahme neuer Anfragen einstellen und aufgrund der Überlastung den Dienst aufgeben sollte, sobald das System heruntergefahren wird.

Dies ist kein einziger Dienst im Paket, der ein ähnliches Setup hat, aber dieser hier bereitet mir die meisten Sorgen. Ich führe VMs für einen einzigen Zweck in einem Cloud-Setup aus, und ein Dateiserver kann eine unfassbare Menge an RAM (64-128 G) haben, die bis zum Hals mit dem Dateisystem-Cache vollgestopft ist, wie htop(1) zeigt. Und da es sich hier um eine Dateispeichermaschine handelt, fehlen mir die Worte, um auszudrücken, wie sehr ich mir wünsche, dass der Server, so das Handbuch, „vor dem Herunterfahren des Systems sauber beendet wird“, insbesondere angesichts der Tatsache, dass ich mit den ext4-Mount-Optionen des exportierten Dateisystems data=writebackund nobarrier¹ ein bisschen Zuverlässigkeit gegen Leistung eintausche.
</Kurz zusammengefasst>

So meinDie Frage lässt sich auf einen Satz reduzieren:

Was passiert mit einem systemd-Dienst, der nicht über die Conflicts=und Before=die Abhängigkeiten von verfügt shutdown.target, wenn das System tatsächlich heruntergefahren wird?


¹ Dies ist ein wohlüberlegter technischer Kompromiss, der anhand des SLA des Cloud-Anbieters und der Ergebnisse einer Reihe von Leistungstests bewertet wird und für den Kern der Frage überhaupt nicht relevant ist.

verwandte Informationen