
systemctl cat myunit.service
druckt den Inhalt der Hauptdatei, myunit.service
gefolgt von allen Override-Dateien. Gibt es eine Möglichkeit, die Unit-Datei zu drucken, die systemd tatsächlich verwenden wird, also die, die durch das Zusammenführen der Overrides in die Haupt-Unit entsteht?
Antwort1
Sie können verwenden systemctl show myunit.service
, um Eigenschaften der Einheit anzuzeigen. Es werden alle Eigenschaften gedruckt, die mit dieser Einheitendatei, der globalen Konfiguration und allen in den Einheitendateien vorgenommenen Anpassungen verknüpft sind.
Standardmäßig werden leere Eigenschaften unterdrückt. Verwenden Sie --all, um diese ebenfalls anzuzeigen.
systemctl show myunit.service --all
Wenn Sie eine bestimmte Eigenschaft überprüfen möchten, verwenden Sie die folgende Syntax:
systemctl show myunit.service --property=<PROPERTY_NAME>
#example
#systemctl show myunit.service --property=ExecStart
Beachten Sie, dass die Ausgabe möglicherweise nicht genau Ihren Erwartungen entspricht:
Beachten Sie, dass die vom Befehl angezeigten Eigenschaften im Allgemeinen eher niedrigstufige, normalisierte Versionen der ursprünglichen Konfigurationseinstellungen sind und neben der Konfiguration auch den Laufzeitstatus offenlegen. Beispielsweise enthalten die für Serviceeinheiten angezeigten Eigenschaften die aktuelle Hauptprozesskennung des Dienstes als „MainPID“ (was den Laufzeitstatus darstellt), und Zeiteinstellungen werden immer als Eigenschaften angezeigt, die mit dem Suffix „...USec“ enden, selbst wenn eine entsprechende Konfigurationsoption mit „...Sec“ endet, da Mikrosekunden die normalisierte Zeiteinheit sind, die intern vom System- und Servicemanager verwendet wird.
Einzelheiten zu vielen dieser Eigenschaften finden Sie in der Dokumentation der D-Bus-Schnittstelle, die diese Eigenschaften unterstützt, sieheorg.freedesktop.systemd1(5).