.\" -*- coding: UTF-8 -*- '\" t .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SYSTEMD\&.RESOURCE\-CONTROL 5 "" "systemd 255" systemd.resource\-control .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH BEZEICHNUNG systemd.resource\-control \- Resourcensteuerungs\-Unit\-Einstellungen .SH ÜBERSICHT .PP \fIScheibe\fP\&.slice, \fIBereich\fP\&.scope, \fIDienst\fP\&.service, \fISocket\fP\&.socket, \fIEinhängung\fP\&.mount, \fISwap\fP\&.swap .SH BESCHREIBUNG .PP Unit\-Konfigurationsdateien für Dienste, Scheiben, Bereiche, Sockets, Einhängepunkte und Swap\-Geräte nutzen eine Teilmenge der Konfigurationsoptionen für die Ressourcensteuerung von erzeugten Prozessen gemeinsam\&. Intern verlässt sich dies auf das Konzept der Linux Control Groups (cgroups) des Kernels zur Organisation von Prozessen in einem hierarchischen Baum benannter Gruppen zum Zwecke der Ressourcensteuerung\&. .PP Diese Handbuchseite listet die von diesen sechs Unit\-Typen gemeinsam benutzten Optionen auf\&. Siehe \fBsystemd.unit\fP(5) für die gemeinsamen Optionen aller Unit\-Konfigurationsdateien und \fBsystemd.slice\fP(5), \fBsystemd.scope\fP(5), \fBsystemd.service\fP(5), \fBsystemd.socket\fP(5), \fBsystemd.mount\fP(5) und \fBsystemd.swap\fP(5) für weitere Informationen über die speziellen Unit\-Konfigurationsdateien\&. Die Ressourcensteuerungskonfigurationsoptionen werden in den Abschnitten [Slice], [Scope], [Service], [Socket], [Mount] oder [Swap], abhängig vom Unit\-Typ, konfiguriert\&. .PP Zusätzlich werden Optionen, die die verfügbaren Ressourcen der von Systemd \fIgestarteten\fP Programme steuern, in \fBsystemd.exec\fP(5) aufgeführt\&. Diese Optionen ergänzen die hier aufgeführten Optionen\&. .SS "Controller aktivieren oder deaktivieren" .PP Controller in der Cgroup\-Hierarchie sind hierarchisch und die Ressourcensteuerung wird über verteilte Ressourcenzuweisungen zwischen Geschwistern in Zweigen der Cgroup\-Hierarchie realisiert\&. Es besteht keine Notwendigkeit, einen Cgroup\-Controller für eine Unit explizit zu \fIaktivieren\fP\&. \fBsystemd\fP wird den Kernel anweisen, einen Controller für eine angegebene Unit zu aktivieren, wenn diese Unit über eine Konfiguration für einen angegebenen Controller verfügt\&. Wenn beispielsweise \fICPUWeight=\fP gesetzt ist, wird der Controller \fBcpu\fP aktiviert und wenn \fITasksMax=\fP gesetzt ist, wird der Controller \fBpids\fP aktiviert\&. Zusätzlich können verschiedene Controller auch über explizite Einstellungen \fIMemoryAccounting=\fP/\fITasksAccounting=\fP/\fIIOAccounting=\fP aktiviert werden\&. Aufgrund der Arbeitsweise der Cgroup\-Hierarchie werden Controller für alle Eltern\-Units und für alle Geschwister\-Units, beginnend bei der niedrigsten Stufe, auf der der Controller aktiviert ist, aktiviert werden\&. Units, für die ein Controller aktiviert ist, können der Ressourcensteuerung unterliegen, selbst falls sie selbst über keine explizite Konfiguration verfügen\&. .PP Setzen von \fIDelegate=\fP aktiviert alle delegierten Controller für diese Unit (siehe unten)\&. Die Delegierten können dann nach Bedarf Controller für ihre Kinder aktivieren\&. Falls insbesondere der Delegierte \fBsystemd\fP ist (in der Unit user@\&.service), wird er die gleiche Logik wie die Systeminstanz wiederholen und Controller für Units aktivieren, bei denen Ressourcenbeschränkungen konfiguriert wurden, sowie deren Geschwistern und Eltern und den Geschwistern der Eltern\&. .PP Controller können für Teile der Cgroup\-Hierarchie mit \fIDisableControllers=\fP \fIdeaktiviert\fP werden (siehe unten)\&. .PP \fBBeispiel\ \&1.\ \&Controller aktivieren und deaktivieren\fP .sp .if n \{\ .RS 4 .\} .nf \-\&.slice / \e /\-\-\-\-\-/ \e\-\-\-\-\-\-\-\-\-\-\-\-\-\-\e / \e system\&.slice user\&.slice / \e / \e / \e / \e / \e user@42\&.service user@1000\&.service / \e Delegate= Delegate=yes a\&.service b\&.slice / \e CPUWeight=20 DisableControllers=cpu / \e / \e app\&.slice session\&.slice / \e CPUWeight=100 CPUWeight=100 / \e b1\&.service b2\&.service CPUWeight=1000 .fi .if n \{\ .RE .\} .PP In dieser Hierarchie ist der Controller \fBcpu\fP für alle angezeigten Units außer b1\&.service und b2\&.service aktiviert\&. Da es keine explizite Konfiguration für system\&.slice und user\&.slice gibt, werden die CPU\-Ressourcen zwischen ihnen gleichmäßig aufgeteilt\&. Ähnlich werden Ressourcen zwischen den Kindern von user\&.slice und zwischen der Kind\-Scheibe unterhalb von user@1000\&.service aufgeteilt\&. Unter der Annahme, dass es keine weitere Konfiguration der Ressourcen oder Delegationen unterhalb der Scheibe app\&.slice oder session\&.slice gibt, würde der Controller \fBcpu\fP nicht für Units in diesen Scheiben aktiviert und CPU\-Ressourcen würden weiter mittels anderer Mechanismen, z\&.B\&. basierend auf den Nice\-Stufen, zugewiesen\&. Der Verwalter für Benutzer 42 hat Delegation ohne Controller aktiviert, d\&.h\&. er kann seinen Unterbaum der Cgroup\-Hierarchie verändern, aber ohne Ressourcensteuerung\&. .PP In der Scheibe system\&.slice werden die CPU\-Ressourcen 1:6 auf Dienst a\&.service und 5:6 auf Scheibe b\&.slice aufgeteilt, da Scheibe b\&.slice den Vorgabewert von 100 für cpu\&.weight erhält, wenn \fICPUWeight=\fP nicht gesetzt ist\&. .PP Die Einstellung \fICPUWeight=\fP in b2\&.service wird durch \fIDisableControllers=\fP in Scheibe b\&.slice neutralisiert, so dass der Controller \fBcpu\fP für die Dienste b1\&.service und b2\&.service nicht aktiviert würde und CPU\-Ressourcen weiter mittels anderer Mechanismen, z\&.B\&. basierend auf den Nice\-Stufen, zugewiesen würden\&. .SS "Ressourcensteuerungen für eine Cgroup zugehöriger Units setzen" .PP Wie in \fBsystemd.unit\fP(5) beschrieben, können die hier aufgeführten Einstellungen über die Hauptkonfigurationsdatei einer Unit und Ergänzungsschnipsel in *\&.d/\-Verzeichnissen gesetzt werden\&. Die Liste der nach Ergänzungen durchsuchten Verzeichnisse enthält Namen, die durch wiederholtes Abschneiden des Units\-Namens nach allen Gedankenstrichen geformt werden\&. Dies ist insbesondere praktisch, um Ressourcenbegrenzungen für eine Gruppe von Units mit ähnlichen Namen zu setzen\&. .PP Beispielsweise erhält jeder Benutzer seine eigene Scheibe user\-\fInnn\fP\&.slice\&. Ergänzungen mit lokaler Konfiguration, die Benutzer 1000 betreffen, können in /etc/systemd/system/user\-1000\&.slice, /etc/systemd/system/user\-1000\&.slice\&.d/*\&.conf, aber auch in /etc/systemd/system/user\-\&.slice\&.d/*\&.conf abgelegt werden\&. Das letzte Verzeichnis gilt für alle Benutzer\-Scheiben\&. .PP Siehe die \m[blue]\fBNeue Control\-Gruppen\-Schnittstellen\fP\m[]\&\s-2\u[1]\d\s+2 für eine Einführung, wie die Ressourcensteuerungs\-APIs von Programmen genutzt werden können\&. .SH "IMPLIZITE ABHÄNGIGKEITEN" .PP Die folgenden Abhängigkeiten werden implizit hinzugefügt: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Units mit der gesetzten Einstellung \fISlice=\fP erlangen automatisch \fIRequires=\fP\- und \fIAfter=\fP\-Abhängigkeiten auf die festgelegte Scheiben\-Unit\&. .RE .SH OPTIONEN .PP Units der oben aufgeführten Typen können Einstellungen für die Ressourcensteuerungskonfiguration haben: .SS "CPU\-Buchführung und \-Steuerung" .PP \fICPUAccounting=\fP .RS 4 Schaltet die Buchführung für die CPU\-Benutzung für diese Unit ein\&. Akzeptiert ein logisches Argument\&. Beachten Sie, dass das Einschalten der CPU\-Buchführung in einer Unit implizit die Buchführung für alle Units in der gleichen Scheibe und für alle ihre Eltern\-Scheiben und die darin enthaltenen Units einschaltet\&. Die Systemvorgabe für diese Einstellung kann mit \fIDefaultCPUAccounting=\fP in \fBsystemd\-system.conf\fP(5) gesteuert werden\&. .sp Unter der vereinigten Cgroup\-Hierarchie ist die CPU\-Buchführung für alle Units verfügbar und diese Einstellung hat keine Auswirkung\&. .sp Hinzugefügt in Version 208\&. .RE .PP \fICPUWeight=\fP\fIGewicht\fP, \fIStartupCPUWeight=\fP\fIGewicht\fP .RS 4 Diese Einstellungen steuern den Controller \fBcpu\fP in der vereinigten Hierarchie\&. .sp Diese Optionen akzeptieren einen Ganzzahlwert oder die besondere Zeichenkette »idle«: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Weist, falls auf einen Ganzzahlwert gesetzt, die festgelegte CPU\-Zeitgewichtung den ausgeführten Prozessen zu, falls die vereinigte Control\-Gruppenhierarchie auf dem System verwandt wird\&. Diese Optionen steuern das Control\-Group\-Attribut »cpu\&.weight«\&. Der erlaubte Bereich ist 1 bis 10000\&. Standardmäßig nicht gesetzt, aber die Vorgabe des Kernels ist 100\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBControl\-Gruppen v2\fP\m[]\&\s-2\u[2]\d\s+2 und \m[blue]\fBCFS\-Auftragsplaner\fP\m[]\&\s-2\u[3]\d\s+2\&. Die verfügbare CPU\-Zeit wird zwischen allen Units innerhalb einer Scheibe relativ zu ihrer CPU\-Zeitgewichtung aufgeteilt\&. Ein höheres Gewicht bedeutet mehr CPU\-Zeit, ein geringeres Gewicht weniger\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Falls sie auf die besondere Zeichenkette »idle« gesetzt wird, dann wird die Cgroup für »idle scheduling« (Leerlauf\-Auftragsplanung) markiert\&. Das bedeutet, dass sie nur CPU\-Ressourcen bekommt, wenn es keine Prozesse gibt, die nicht so markiert sind, die in dieser Cgroup oder seinen Geschwistern ausgeführt werden\&. Diese Einstellung entspricht dem Cgroup\-Attribut »cpu\&.idle«\&. .sp Beachten Sie, dass dieser Wert nur bei Cgroup\-V2 eine Auswirkung hat, bei Cgroup\-V1 ist sie äquivalent zu der Minimalgewichtung\&. .RE .sp Während \fIStartupCPUWeight=\fP für die Hoch\- und Runterfahrphase des Systems gilt, gilt \fICPUWeight=\fP während der normalen Laufzeit des Systems und falls ersteres nicht gesetzt ist, auch für die Hoch\- und Runterfahrphasen\&. Durch Verwendung von \fIStartupCPUWeight=\fP ist eine abweichende Priorisierung bestimmter Dienste während des Hoch\- und Runterfahrens des Systems im Vergleich zur normalen Laufzeit möglich\&. .sp Zusätzlich zu der durch den Controller \fBcpu\fP durchgeführten Ressourcenbelegung kann der Kernel automatisch Ressourcen basierend auf der Sitzungskennungsgruppierung verteilen, siehe »The autogroup feature« in \fBsched\fP(7)\&. Die Auswirkung dieser Funktionalität ist ähnlich des Controllers \fBcpu\fP ohne explizite Konfiguration, daher sollten Benutzer vorsichtig sein, nicht beide durcheinander zu bringen\&. .sp Hinzugefügt in Version 232\&. .RE .PP \fICPUQuota=\fP .RS 4 Diese Einstellung steuert den Controller \fBcpu\fP in der vereinigten Hierarchie\&. .sp Weist die festgelegte CPU\-Zeitquote den ausgeführten Prozessen zu\&. Akzeptiert einen Prozentwert, dem »%« angehängt ist\&. Der Prozentwert gibt an, wieviel CPU\-Zeit die Unit maximal erhalten soll, relativ zu der gesamten CPU\-Zeit, die auf einer CPU verfügbar ist\&. Verwenden Sie Werte > 100%, um CPU\-Zeit auf mehr als einer CPU vorzusehen\&. Dies steuert das Attribut »cpu\&.max« der vereinigten Control\-Gruppenhierarchie und »cpu\&.max« auf der alten\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBControl\-Gruppen v2\fP\m[]\&\s-2\u[2]\d\s+2 und \m[blue]\fBCFS\-Bandweitensteuerung\fP\m[]\&\s-2\u[4]\d\s+2\&. Durch Setzen von \fICPUQuota=\fP auf einen leeren Wert wird keine Quote gesetzt\&. .sp Beispiel: \fICPUQuota=20%\fP stellt sicher, dass der ausgeführte Prozess niemals mehr als 20% CPU\-Zeit auf einer CPU erhält\&. .sp Hinzugefügt in Version 213\&. .RE .PP \fICPUQuotaPeriodSec=\fP .RS 4 Diese Einstellung steuert den Controller \fBcpu\fP in der vereinigten Hierarchie\&. .sp Weist die Dauer zu, über den die durch \fICPUQuota=\fP festgelegte CPU\-Zeit\-Kontingent gemessen wird\&. Akzeptiert einen Zeitdauerwert in Sekunden mit einer optionalen Endung wie »ms« für Millisekunden (oder »s« für Sekunden)\&. Die Voreinstellung ist 100 ms\&. Die Periode wird an den durch den Kernel unterstützten Bereich, der [1ms, 1000ms] ist, befestigt\&. Zusätzlich wird die Periode angepasst, so dass das Kontingent\-Intervall auch mindestens 1 ms ist\&. Wird \fICPUQuotaPeriodSec=\fP auf einen leeren Wert gesetzt, so wird er auf die Vorgabe zurückgesetzt\&. .sp Dies steuert das zweite Feld des Attributs »cpu\&.max« der vereinigten Control\-Gruppenhierarchie und »cpu\&.cfs_period_us« auf der alten\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBControl\-Gruppen v2\fP\m[]\&\s-2\u[2]\d\s+2 und \m[blue]\fBCFS\-Auftragsplaner\fP\m[]\&\s-2\u[3]\d\s+2\&. .sp Beispiel: Mit \fICPUQuotaPeriodSec=10ms\fP wird erbeten, das CPU\-Kontingent in Perioden von 10 ms zu messen\&. .sp Hinzugefügt in Version 242\&. .RE .PP \fIAllowedCPUs=\fP, \fIStartupAllowedCPUs=\fP .RS 4 Diese Einstellung steuert den Controller \fBcpuset\fP in der vereinigten Hierarchie\&. .sp Beschränkt die Ausführung von Prozessen auf bestimmte CPUs\&. Akzeptiert eine Liste von CPU\-Indicies oder \-Bereichen, getrennt durch Leerraum oder Kommata\&. CPU\-Bereiche werden durch den unteren und oberen CPU\-Index, getrennt durch einen Bindestrich, angegeben\&. .sp Setzen von \fIAllowedCPUs=\fP oder \fIStartupAllowedCPUs=\fP garantiert nicht, dass sämtliche CPUs von den Prozessen verwandt werden, da es durch Eltern\-Units eingeschränkt sein könnte\&. Die wirksame Konfiguration wird durch \fIEffectiveCPUs=\fP berichtet\&. .sp Während \fIStartupAllowedCPU=\fP nur für die Hoch\- und Runterfahrphasen des Systems gelten, gilt \fIAllowedCPUs=\fP während der normalen Laufzeit des Systems und falls ersteres nicht gesetzt ist, auch für die Hoch\- und Runterfahrphasen\&. Durch Verwendung von \fIStartupAllowedCPUs=\fP ist eine abweichende Priorisierung bestimmter Dienste während des Hoch\- und Runterfahrens des Systems im Vergleich zur normalen Laufzeit möglich\&. .sp Diese Einstellung wird nur mit der vereinigten Control\-Gruppenhierarchie unterstützt\&. .sp Hinzugefügt in Version 244\&. .RE .SS "Speicher\-Buchführung und \-Steuerung" .PP \fIMemoryAccounting=\fP .RS 4 Diese Einstellung steuert den Controller \fBmemory\fP in der vereinigten Hierarchie\&. .sp Schaltet Prozess\- und Kernelspeicherbuchführung für diese Unit ein\&. Akzeptiert ein logisches Argument\&. Beachten Sie, dass das Einschalten der Speicherbuchführung in einer Unit implizit die Buchführung für alle Units in der gleichen Scheibe und für alle ihre Eltern\-Scheiben und die darin enthaltenen Units einschaltet\&. Die Systemvorgabe für diese Einstellung kann mit \fIDefaultMemoryAccounting=\fP in \fBsystemd\-system.conf\fP(5) gesteuert werden\&. .sp Hinzugefügt in Version 208\&. .RE .PP \fIMemoryMin=\fP\fIByte\fP, \fIMemoryLow=\fP\fIByte\fP, \fIStartupMemoryLow=\fP\fIByte\fP, \fIDefaultStartupMemoryLow=\fP\fIByte\fP .RS 4 Diese Einstellungen steuern den Controller \fBmemory\fP in der vereinigten Hierarchie\&. .sp Legt den Speicherverwendungsschutz für die ausgeführten Prozesse in dieser Unit fest\&. Wenn Speicher zurückgewonnen wird, dann wird diese Unit so behandelt, als ob sie weniger Speicher verwenden würde, was dazu führt, dass Speicher bevorzugt von nicht geschützten Units zurückgewonnen wird\&. Die Verwendung von \fIMemoryLow=\fP führt zu einem schwächeren Schutz, bei dem Speicher weiterhin zurückgewonnen werden kann, um den Aufruf des OOM\-Killers zu vermeiden, falls es keinen anderen zurückgewinnbaren Speicher gibt\&. .sp Damit ein Schutz wirksam wird, ist es im Allgemeinen notwendig, die entsprechende Zuweisung für alle Vorfahren zu setzen, die dann zwischen den Kindern verteilt wird (mit der Ausnahme der Wurzel\-Scheibe)\&. Jede Zuweisung \fIMemoryMin=\fP oder \fIMemoryLow=\fP, die nicht explizit zu den festgelegten Kindern verteilt wird, wird für einen gemeinsamen Schutz für alle Kinder verwandt\&. Da dies ein gemeinsamer Schutz ist, konkurrieren die Kinder frei um den Speicher\&. .sp Akzeptiert eine Speichergröße in Byte\&. Falls dem Wert K, M, G oder T angehängt wird, wird die angegebene Speichergröße in Kilobyte, Megabyte, Gigabyte bzw\&. Terabyte (zur Basis 1024) ausgewertet\&. Alternativ kann ein Prozentwert festgelegt werden, der relativ zum installierten physischen Speicher im System ist\&. Falls der besondere Wert »infinity« zugewiesen wird, wird sämtlicher Speicher geschützt\&. Dies kann nützlich sein, um immer sämtlichen, bei den Vorgängern aufgewandten Schutz zu erben\&. Dies steuert das Control\-Gruppen\-Attribut »memory\&.min« oder »memory\&.low«\&. Für Details über dieses Control\-Gruppen\-Attribut, siehe \m[blue]\fBSpeicherschnittstellen\-Dateien\fP\m[]\&\s-2\u[5]\d\s+2\&. .sp Durch Angabe von \fIDefaultMemoryMin=\fP oder \fIDefaultMemoryLow=\fP (hat die gleiche Semantik wie \fIMemoryMin=\fP und \fIMemoryLow=\fP) oder \fIDefaultStartupMemoryLow=\fP (hat die gleiche Semantik wie \fIStartupMemoryLow=\fP) können Units ihren Kindern einen Vorgabewert für »memory\&.\&.min« oder »memory\&.low« verwenden lassen\&. Diese Einstellung beeinflusst nicht »memory\&.\&.min« oder »memory\&.low« in der Unit selbst\&. Die Verwendung zum Setzen einer Vorgabe\-Zuweisung ist nur auf Kerneln vor 5\&.7 nützlich, die die Cgroup2\-Einhängeoption »memory_recursiveprot« nicht unterstützen\&. .sp Während \fIStartupMemoryLow=\fP für die Hoch\- und Runterfahrphasen des Systems gilt, gilt \fIMemoryMin=\fP während der normalen Laufzeit des Systems und falls ersteres nicht gesetzt ist, auch für die Hoch\- und Runterfahrphasen\&. Durch Verwendung von \fIStartupMemoryLow=\fP ist eine abweichende Priorisierung bestimmter Dienste während des Hoch\- und Runterfahrens des Systems im Vergleich zur normalen Laufzeit möglich\&. .sp Hinzugefügt in Version 240\&. .RE .PP \fIMemoryHigh=\fP\fIByte\fP, \fIStartupMemoryHigh=\fP\fIByte\fP .RS 4 Diese Einstellungen steuern den Controller \fBmemory\fP in der vereinigten Hierarchie\&. .sp Legt die Drosselungs\-Speicherverbrauchsbegrenzung der ausgeführten Prozesse in dieser Unit fest\&. Speicherverbrauch darf diese Begrenzung überschreiten, falls es unvermeidbar ist, aber die Prozesse werden drastisch verlangsamt und der Speicher wird in solchen Fällen aggressiv fortgenommen\&. Dies ist der Hauptmechanismus, um den Speicherverbrauch einer Unit zu steuern\&. .sp Akzeptiert eine Speichergröße in Byte\&. Falls dem Wert K, M, G oder T angehängt wird, wird die angegebene Speichergröße in Kilobyte, Megabyte, Gigabyte bzw\&. Terabyte (zur Basis 1024) ausgewertet\&. Alternativ kann ein Prozentwert festgelegt werden, der relativ zum installierten physischen Speicher im System ist\&. Falls der besondere Wert »infinity« zugewiesen wird, wird keine Speicherdrosselung angewandt\&. Dies steuert das Control\-Gruppen\-Attribut »memory\&.high«\&. Für Details über dieses Control\-Gruppen\-Attribut, siehe \m[blue]\fBSpeicherschnittstellen\-Dateien\fP\m[]\&\s-2\u[5]\d\s+2\&. .sp Während \fIStartupMemoryHigh=\fP für die Hoch\- und Runterfahrphase des Systems gilt, gilt \fIMemoryHigh=\fP während der normalen Laufzeit des Systems und falls ersteres nicht gesetzt ist, auch für die Hoch\- und Runterfahrphasen\&. Durch Verwendung von \fIStartupMemoryHigh=\fP ist eine abweichende Priorisierung bestimmter Dienste während des Hoch\- und Runterfahrens des Systems im Vergleich zur normalen Laufzeit möglich\&. .sp Hinzugefügt in Version 231\&. .RE .PP \fIMemoryMax=\fP\fIByte\fP, \fIStartupMemoryMax=\fP\fIByte\fP .RS 4 Diese Einstellungen steuern den Controller \fBmemory\fP in der vereinigten Hierarchie\&. .sp Legt die absolute Grenze der Speicherverwendung durch den ausgeführten Prozess in dieser Unit fest\&. Falls der Speicherverbrauch nicht unterhalb dieser Grenze gehalten werden kann, wird der Speicherknappheits\-Killer innerhalb der Unit aufgerufen\&. Es wird empfohlen, \fIMemoryHigh=\fP als Hauptsteuermechanismus und \fIMemoryMax=\fP als letzte Verteidigungslinie zu verwenden\&. .sp Akzeptiert eine Speichergröße in Byte\&. Falls dem Wert K, M, G oder T angehängt wird, wird die angegebene Speichergröße in Kilobyte, Megabyte, Gigabyte bzw\&. Terabyte (zur Basis 1024) ausgewertet\&. Alternativ kann ein Prozentwert festgelegt werden, der relativ zum installierten physischen Speicher im System ist\&. Falls der besondere Wert »infinity« zugewiesen wird, wird keine Speicherbegrenzung angewandt\&. Dies steuert das Control\-Gruppen\-Attribut »memory\&.max«\&. Für Details über dieses Control\-Gruppen\-Attribut, siehe \m[blue]\fBSpeicherschnittstellen\-Dateien\fP\m[]\&\s-2\u[5]\d\s+2\&. .sp Während \fIStartupMemoryMax=\fP für die Hoch\- und Runterfahrphasen des Systems gilt, gilt \fIMemoryMax=\fP während der normalen Laufzeit des Systems und falls ersteres nicht gesetzt ist, auch für die Hoch\- und Runterfahrphasen\&. Durch Verwendung von \fIStartupMemoryMax=\fP ist eine abweichende Priorisierung bestimmter Dienste während des Hoch\- und Runterfahrens des Systems im Vergleich zur normalen Laufzeit möglich\&. .sp Hinzugefügt in Version 231\&. .RE .PP \fIMemorySwapMax=\fP\fIByte\fP, \fIStartupMemorySwapMax=\fP\fIByte\fP .RS 4 Diese Einstellungen steuern den Controller \fBmemory\fP in der vereinigten Hierarchie\&. .sp Legt die absolute Begrenzung bezüglich Auslagerungsverwendung von in dieser Unit ausgeführten Prozessen fest\&. .sp Akzeptiert eine Auslagerungsgröße in Byte\&. Falls dem Wert K, M, G oder T angehängt wird, wird die angegebene Speichergröße in Kilobyte, Megabyte, Gigabyte bzw\&. Terabyte (zur Basis 1024) ausgewertet\&. Falls der besondere Wert »infinity« zugewiesen wird, wird keine Auslagerungsbegrenzung angewandt\&. Diese Einstellungen steuern das Control\-Gruppen\-Attribut »memory\&.swap\&.max«\&. Für Details über dieses Control\-Gruppen\-Attribut, siehe \m[blue]\fBSpeicherschnittstellen\-Dateien\fP\m[]\&\s-2\u[5]\d\s+2\&. .sp Während \fIStartupMemorySwapMax=\fP für die Hoch\- und Runterfahrphasen des Systems gilt, gilt \fIMemorySwapMax=\fP während der normalen Laufzeit des Systems und falls ersteres nicht gesetzt ist, auch für die Hoch\- und Runterfahrphasen\&. Durch Verwendung von \fIStartupMemorySwapMax=\fP ist eine abweichende Priorisierung bestimmter Dienste während des Hoch\- und Runterfahrens des Systems im Vergleich zur normalen Laufzeit möglich\&. .sp Hinzugefügt in Version 232\&. .RE .PP \fIMemoryZSwapMax=\fP\fIByte\fP, \fIStartupMemoryZSwapMax=\fP\fIByte\fP .RS 4 Diese Einstellungen steuern den Controller \fBmemory\fP in der vereinigten Hierarchie\&. .sp Legt die absolute Begrenzung der Verwendung von Zswap der Prozesse in dieser Unit fest\&. Zswap ist ein leichtgewichtiger Zwischenspeicher für Auslagerungsseiten\&. Es akzeptiert Seiten, die gerade ausgelagert werden sollen und versucht sie in einen dynamisch reservierten RAM\-basierten Speicherbereich zu komprimieren\&. Falls die festgelegte Begrenzung erreicht wird, werden keine Einträge von dieser Unit mehr in dem Bereich gespeichert, bis bestehende Einträge wieder eingelesen oder auf Platte geschrieben werden\&. Siehe die Kerneldokumentation für \m[blue]\fBZswap\fP\m[]\&\s-2\u[6]\d\s+2 für weitere Details\&. .sp Akzeptiert eine Größe in Byte\&. Falls dem Wert K, M, G oder T angehängt wird, wird die angegebene Größe in Kilobyte, Megabyte, Gigabyte bzw\&. Terabyte (zur Basis 1024) ausgewertet\&. Falls der besondere Wert »infinity« zugewiesen wird, wird keine Begrenzung angewandt\&. Diese Einstellungen steuern das Control\-Gruppen\-Attribut »memory\&.zswap\&.max«\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBSpeicherschnittstellen\-Dateien\fP\m[]\&\s-2\u[5]\d\s+2\&. .sp Während \fIStartupMemoryZSwapMax=\fP für die Hoch\- und Runterfahrphasen des Systems gilt, gilt \fIMemoryZSwapMax=\fP während der normalen Laufzeit des Systems und falls ersteres nicht gesetzt ist, auch für die Hoch\- und Runterfahrphasen\&. Durch Verwendung von \fIStartupMemoryZSwapMax=\fP ist eine abweichende Priorisierung bestimmter Dienste während des Hoch\- und Runterfahrens des Systems im Vergleich zur normalen Laufzeit möglich\&. .sp Hinzugefügt in Version 253\&. .RE .PP \fIAllowedMemoryNodes=\fP, \fIStartupAllowedMemoryNodes=\fP .RS 4 Diese Einstellungen steuern den Controller \fBcpuset\fP in der vereinigten Hierarchie\&. .sp Beschränkt die Ausführung von Prozessen auf bestimmte Speicher\-NUMA\-Knoten\&. Akzeptiert eine Liste von Speicher\-NUMA\-Knoten oder \-Bereichen, getrennt durch Leerraum oder Kommata\&. Speicher\-NUMA\-Knotenbereiche werden durch den unteren und oberen NUMA\-Knotenindex, getrennt durch einen Bindestrich, angegeben\&. .sp Setzen von \fIAllowedMemoryNodes\fP oder \fIStartupAllowedMemoryNodes=\fP garantiert nicht, dass sämtliche Speicher\-NUMA\-Knoten von den Prozessen verwandt werden, da es durch Eltern\-Units eingeschränkt sein könnte\&. Die wirksame Konfiguration wird durch \fIEffectiveMemoryNodes=\fP berichtet\&. .sp Während \fIStartupAllowedMemoryNodes=\fP für die Hoch\- und Runterfahrphasen des Systems gilt, gilt \fIAllowedMemoryNodes=\fP während der normalen Laufzeit des Systems und falls ersteres nicht gesetzt ist, auch für die Hoch\- und Runterfahrphasen\&. Durch Verwendung von \fIStartupAllowedMemoryNodes=\fP ist eine abweichende Priorisierung bestimmter Dienste während des Hoch\- und Runterfahrens des Systems im Vergleich zur normalen Laufzeit möglich\&. .sp Diese Einstellung wird nur mit der vereinigten Control\-Gruppenhierarchie unterstützt\&. .sp Hinzugefügt in Version 244\&. .RE .SS "Prozess\-Buchführung und \-Steuerung" .PP \fITasksAccounting=\fP .RS 4 Diese Einstellung steuert den Controller \fBpids\fP in der vereinigten Hierarchie\&. .sp Schaltet Prozessbuchführung für diese Unit ein\&. Akzeptiert ein logisches Argument\&. Falls aktiviert, wird der Kernel die Gesamtanzahl der Prozesse in der Unit und ihren Kindern nachverfolgen\&. Diese Anzahl enthält sowohl Kernel\-Threads als auch Benutzerprozesse, wobei jeder Thread einzeln zählt\&. Beachten Sie, dass das Einschalten der Prozessbuchführung für eine Unit dies implizit auch für alle Units, die in der gleichen Scheibe enthalten sind und für alle Elternscheiben und die darin befindlichen Units einschaltet\&. Die Systemvorgabe für diese Einstellung kann durch \fIDefaultTasksAccounting=\fP in \fBsystemd\-system.conf\fP(5) gesteuert werden\&. .sp Hinzugefügt in Version 227\&. .RE .PP \fITasksMax=\fP\fIN\fP .RS 4 Diese Einstellung steuert den Controller \fBpids\fP in der vereinigten Hierarchie\&. .sp Legt die maximale Anzahl an Prozessen, die in dieser Unit erstellt werden dürfen, fest\&. Dies stellt sicher, dass die Anzahl der Prozesse, für die die Unit buchführt (siehe oben), unterhalb einer festgelegten Begrenzung bleibt\&. Dies akzeptiert entweder eine absolute Anzahl an Prozessen oder einen Prozentwert, der relativ zu der konfigurierten Maximalzahl an Prozessen im System ist\&. Falls der besondere Wert »infinity« zugewiesen wird, wird keine Prozessbegrenzung angewandt\&. Dies steuert das Control\-Gruppen\-Attribut »pids\&.max«\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBPIDs\-Controller\fP\m[]\&\s-2\u[7]\d\s+2\&. .sp Die Systemvorgabe für diese Einstellung kann mit \fIDefaultTasksMax=\fP in \fBsystemd\-system.conf\fP(5) gesteuert werden\&. .sp Hinzugefügt in Version 227\&. .RE .SS "E/A\-Buchführung und \-Steuerung" .PP \fIIOAccounting=\fP .RS 4 Diese Einstellung steuert den Controller \fBio\fP in der vereinigten Hierarchie\&. .sp Schaltet Block\-E/A\-Buchführung für diese Unit ein, falls die vereinigte Control\-Gruppenhierarchie auf dem System verwandt wird\&. Akzeptiert ein logisches Argument\&. Beachten Sie, dass das Einschalten der Block\-E/A\-Buchführung für eine Unit dies implizit auch für alle Units, die in der gleichen Scheibe enthalten sind und für alle Elternscheiben und die darin befindlichen Units einschaltet\&. Die Systemvorgabe für diese Einstellung kann durch \fIDefaultIOAccounting=\fP in \fBsystemd\-system.conf\fP(5) gesteuert werden\&. .sp Hinzugefügt in Version 230\&. .RE .PP \fIIOWeight=\fP\fIGewicht\fP, \fIStartupIOWeight=\fP\fIGewicht\fP .RS 4 Diese Einstellungen steueren den Controller \fBio\fP in der vereinigten Hierarchie\&. .sp Setzt die vorgegebene Gesamt\-Block\-E/A\-Gewichtung für die ausgeführten Prozesse, falls die vereinigte Control\-Gruppenhierarchie auf dem System verwandt wird\&. Akzeptiert einen einzelnen Gewichtungswert (zwischen 1 und 10000), um die vorgegebene Block\-E/A\-Gewichtung zu setzen\&. Dies steuert das Control\-Gruppen\-Attribut »io\&.weight«, das standardmäßig 100 beträgt\&. Für Details über dieses Control\-Gruppen\-Attribut, siehe \m[blue]\fBE/A\-Schnittstellen\-Dateien\fP\m[]\&\s-2\u[8]\d\s+2\&. Die verfügbare E/A\-Bandbreite wird zwischen allen Units innerhalb einer Scheibe relativ zu ihrer Block\-E/A\-Gewichtung aufgeteilt\&. Ein höherer Wert bedeutet mehr E/A\-Bandbreite, ein geringerer Wert weniger\&. .sp Während \fIStartupIOWeight=\fP in der Hoch\- und Runterfahrphase des Systems angewandt wird, wird \fIIOWeight=\fP später zur Laufzeit des Systems angewandt und falls erstere nicht gesetzt ist, auch während der Hoch\- und Runterfahrphasen\&. Dies erlaubt es, bestimmte Dienste beim Hoch\- und Runterfahren anders als zur Laufzeit zu priorisieren\&. .sp Hinzugefügt in Version 230\&. .RE .PP \fIIODeviceWeight=\fP\fIGerät\fP\fI \fP\fIGewicht\fP .RS 4 Diese Einstellung steuert den Controller \fBio\fP in der vereinigten Hierarchie\&. .sp Setzt die gerätebezogene Gesamt\-Block\-E/A\-Gewichtung für den ausgeführten Prozess, falls die vereinigte Control\-Gruppenhierarchie auf dem System verwandt wird\&. Akzeptiert ein Leerzeichen\-getrenntes Paar eines Dateipfades und eines Gewichtungswertes, um den gerätespezifischen Gewichtungswert zwischen 1 und 10000 festzulegen\&. (Beispiel: "/dev/sda 1000")\&. Der Dateipfad kann als Pfad zu einem Blockgeräteknoten oder zu einer anderen Datei angegeben werden\&. In letzterem Fall wird das zugrundeliegende Blockgerät des Dateisystems der Datei bestimmt\&. Dies steuert das Control\-Gruppen\-Attribut »io\&.weight«, das standardmäßig 100 ist\&. Verwenden Sie diese Option mehrfach, um Gewichtungen für mehrere Geräte zu setzen\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBE/A\-Schnittstellen\-Dateien\fP\m[]\&\s-2\u[8]\d\s+2\&. .sp Der festgelegte Geräteknoten sollte ein Blockgerät referenzieren, der einen E/A\-Scheduler zugeordnet hat, d\&.h\&. er sollte sich nicht auf eine Partition oder Loopback\-Blockgeräte beziehen, sondern auf das ursprüngliche, physische Gerät\&. Wenn ein Pfad zu einer regulären Datei oder einem regulären Verzeichnis angegeben wird, wird versucht, das korrekte ursprüngliche, zugrundeliegende Geräte für den festgelegten Pfad zu entdecken\&. Dies funktioniert nur für die einfacheren Fälle korrekt, bei denen das Dateisystem direkt auf einer Partition oder einem physischen Blockgerät angelegt ist, oder bei denen einfache 1:1\-Verschlüsselung mittels dm\-crypt/LUKS verwandt wird\&. Diese Erkennung deckt komplexe Speicher und insbesondere RAID und Datenträger\-Verwaltungs\-Speichergeräte nicht ab\&. .sp Hinzugefügt in Version 230\&. .RE .PP \fIIOReadBandwidthMax=\fP\fIGerät\fP\fI \fP\fIByte\fP, \fIIOWriteBandwidthMax=\fP\fIGerät\fP\fI \fP\fIByte\fP .RS 4 Diese Einstellungen steueren den Controller \fBio\fP in der vereinigten Hierarchie\&. .sp Setzt die gerätebezogene maximale Gesamt\-Block\-E/A\-Bandbreitenbegrenzung für den ausgeführten Prozess, falls die vereinigte Control\-Gruppenhierarchie auf dem System verwandt wird\&. Diese Begrenzung ist nicht arbeitserhaltend und den ausgeführten Prozessen wird nicht mehr erlaubt, selbst falls das Gerät Leerlaufkapazität hat\&. Akzeptiert ein Leerzeichen\-getrenntes Paar eines Dateipfades und eines Bandbreitenwertes (in Byte pro Sekunde), um die gerätespezifische Bandbreite festzulegen\&. Der Dateipfad kann als Pfad zu einem Blockgeräteknoten oder zu einer anderen Datei angegeben werden\&. In letzterem Fall wird das zugrundeliegende Blockgerät des Dateisystems der Datei bestimmt\&. Falls der Bandbreite K, M, G oder T angehängt ist, wird die Bandbreite als Kilobyte, Megabyte, Gigabyte bzw\&. Terabyte zu der Basis 1000 ausgewertet\&. (Beispiel: »/dev/disk/by\-path/pci\-0000:00:1f\&.2\-scsi\-0:0:0:0 5M«)\&. Dies steuert das Control\-Gruppen\-Attribut »io\&.max«\&. Verwenden Sie diese Option mehrfach, um Bandbreitenbegrenzungen für mehrere Geräte zu setzen\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBE/A\-Schnittstellen\-Dateien\fP\m[]\&\s-2\u[8]\d\s+2\&. .sp Ähnliche Beschränkungen für die Blockgeräte\-Erkennung gelten wie bei \fIIODeviceWeight=\fP, siehe oben\&. .sp Hinzugefügt in Version 230\&. .RE .PP \fIIOReadIOPSMax=\fP\fIGerät\fP\fI \fP\fIEAPS\fP, \fIIOWriteIOPSMax=\fP\fIGerät\fP\fI \fP\fIEAPS\fP .RS 4 Diese Einstellungen steueren den Controller \fBio\fP in der vereinigten Hierarchie\&. .sp Setzt die gerätebezogene maximale Gesamt\-Block\-E/A\-EA\-Pro\-Sekunden\-Begrenzung für den ausgeführten Prozess, falls die vereinigte Control\-Gruppenhierarchie auf dem System verwandt wird\&. Diese Begrenzung ist nicht arbeitserhaltend und den ausgeführten Prozessen wird nicht mehr als dieser Wert erlaubt, selbst falls das Gerät Leerlaufkapazität hat\&. Akzeptiert ein Leerzeichen\-getrenntes Paar eines Dateipfades und eines EAPS\-Wertes, um den gerätespezifischen EAPS festzulegen\&. Der Dateipfad kann als Pfad zu einem Blockgeräteknoten oder zu einer anderen Datei angegeben werden\&. In letzterem Fall wird das zugrundeliegende Blockgerät des Dateisystems der Datei bestimmt\&. Falls dem EAPS K, M, G oder T angehängt ist, wird der EAPS als KiloEAPS, MegaEAPS, GigaEAPS bzw\&. TeraEAPS zu der Basis 1000 ausgewertet\&. (Beispiel: »/dev/disk/by\-path/pci\-0000:00:1f\&.2\-scsi\-0:0:0:0 1K«)\&. Dies steuert das Control\-Gruppen\-Attribut »io\&.max«\&. Verwenden Sie diese Option mehrfach, um EAPS\-Begrenzungen für mehrere Geräte zu setzen\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBE/A\-Schnittstellen\-Dateien\fP\m[]\&\s-2\u[8]\d\s+2\&. .sp Ähnliche Beschränkungen für die Blockgeräte\-Erkennung gelten wie bei \fIIODeviceWeight=\fP, siehe oben\&. .sp Hinzugefügt in Version 230\&. .RE .PP \fIIODeviceLatencyTargetSec=\fP\fIGerät\fP\fI \fP\fIZiel\fP .RS 4 Diese Einstellung steuert den Controller \fBio\fP in der vereinigten Hierarchie\&. .sp Setzt die gerätebezogene durchschnittliche Ziel\-E/A\-Latenz für den ausgeführten Prozess, falls die vereinigte Control\-Gruppenhierarchie auf dem System verwandt wird\&. Akzeptiert einen Dateipfad und eine Zeitspanne, getrennt durch ein Leerzeichen, um das gerätespezifische Latenzziel festzulegen\&. (Beispiel: "/dev/sda 25ms")\&. Der Dateipfad kann als Pfad zu einem Blockgeräteknoten oder zu einer anderen Datei angegeben werden\&. In letzterem Fall wird das zugrundeliegende Blockgerät des Dateisystems der Datei bestimmt\&. Dies steuert das Control\-Gruppen\-Attribut »io\&.latency«\&. Verwenden Sie diese Option mehrfach, um Latenzziele für mehrere Geräte zu setzen\&. Für Details über dieses Control\-Gruppen\-Attribut siehe \m[blue]\fBE/A\-Schnittstellen\-Dateien\fP\m[]\&\s-2\u[8]\d\s+2\&. .sp Impliziert »IOAccounting=yes«\&. .sp Diese Einstellungen werden nur unterstützt, falls die vereinigte Control\-Gruppenhierarchie verwandt wird\&. .sp Ähnliche Beschränkungen für die Blockgeräte\-Erkennung gelten wie bei \fIIODeviceWeight=\fP, siehe oben\&. .sp Hinzugefügt in Version 240\&. .RE .SS "Netzwerk\-Buchführung und \-Steuerung" .PP \fIIPAccounting=\fP .RS 4 Akzeptiert ein logisches Argument\&. Falls wahr, wird die IPv4\- und IPv6\-Netzwerkverkehrsbuchführung für Pakete, die von dieser Unit gesandt oder empfangen werden, eingeschaltet\&. Wenn diese Option eingeschaltet wird, erfolgt für alle von einem der Prozesse der Unit erstellten IPv4\- und IPv6\-Sockets die Buchführung\&. .sp Wenn diese Option in Socket\-Units verwandt wird, wird sie auf alle hierzu zugeordneten IPv4\- und IPv6\-Socket (einschließlich der auf Anfragen wartenden und der Verbindugssockets, wo dies zutrifft) angewandt\&. Beachten Sie, dass für Socket\-aktivierte Dienste diese Konfigurationseinstellung und die Buchuführungsdaten der Dienste\-Unit und der Socket\-Unit getrennt bleiben und getrennt dargestellt werden\&. Es erfolgt keine Weitergabe der Einstellung und der gesammelten Daten, in keine Richtung\&. Zudem wird sämtlicher Verkehr, der auf einem der Sockets der Socket\-Unit empfangen oder gesandt wird für die Socket\-Unit buchgeführt \(em und niemals für die Dienste\-Unit, die sie aktiviert haben könnte, selbst falls der Socket von dieser verwandt wird\&. .sp Die Systemvorgabe für diese Einstellung kann mit \fIDefaultIPAccounting=\fP in \fBsystemd\-system.conf\fP(5) gesteuert werden\&. .sp Hinzugefügt in Version 235\&. .RE .PP \fIIPAddressAllow=\fP\fIADRESSE[/PRÄFIXLÄNGE]…\fP, \fIIPAddressDeny=\fP\fIADRESSE[/PRÄFIXLÄNGE]…\fP .RS 4 Schaltet Netzwerkverkehrsfilterung für IP\-Pakete, die über \fBAF_INET\fP\- und \fBAF_INET6\fP\-Sockets gesandt oder empfangen werden, ein\&. Beide Anweisungen akzeptieren eine Leerzeichen\-getrennte Liste von IPv4\- oder IPv6\-Adressen, an jede kann optional eine Adresspräfixlänge in Bits nach einem Zeichen »/« angehängt werden\&. Falls die Endung entfällt, wird die Adresse als Rechneradresse betrachtet, d\&.h\&. der Filter deckt die gesamte Adresse ab (32 Bit für IPv4, 128 Bit für IPv6)\&. .sp Die mit dieser Option konfigurierten Zugriffslisten werden auf allen von dieser Unit erstellten Sockets (oder im Falle von Socket\-Units, allen der Unit zugeordneten) angewandt\&. Die Liste wird implzit mit jeder für irgendeine Elternscheibe, bei der diese Unit Mitglied sein könnte, kombiniert\&. Standardmäßig sind beide Zugriffslisten leer\&. Durch diese Einstellung wird sowohl ein\- als auch ausgehender Verkehr gefiltert\&. Im Falle des eingehenden Verkehrs wird die Quell\-IP\-Adresse gegen diese Zugriffslisten geprüft, im Falle des ausgehenden Verkehrs wird die Ziel\-IP\-Adresse geprüft\&. Die folgenden Regeln werden nacheinander angewandt: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Falls die überpüfte IP\-Adresse auf einen Eintrag in der Einstellung \fIIPAddressAllow=\fP passt, wird der Zugriff erlaubt\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Falls die überprüfte IP\-Adresse auf einen Eintrag in der Liste \fIIPAddressDeny=\fP passt, wird andernfalls der Zugriff verweigert\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Andernfalls wird der Zugriff gewährt\&. .RE .sp Um eine IP\-Firewall mit Positivliste zu implementieren, wird empfohlen, eine Einstellung \fIIPAddressDeny=\fP\fBany\fP in einer höherstufigen Scheiben\-Unit (wie der Wurzel\-Scheibe \-\&.slice oder der Scheibe, die alle Systemdienste enthält, system\&.slice \(en siehe \fBsystemd.special\fP(7) für Details über diese Scheiben\-Units) zu verwenden, ergänzt um individuelle, dienstebezogene \fIIPAddressAllow=\fP\-Zeilen, die Netzwerkzugriff auf relevante Dienste, und nur diese, erlauben\&. .sp Beachten Sie, dass für Socket\-aktivierte Dienste die IP\-Zugriffsliste, die in der Socket\-Unit konfiguriert ist, auf alle direkt zugeordneten Sockets angewandt wird, aber nicht auf irgendein Socket, das von den dafür schließlich aktivierten Diensten erstellt wurde\&. Umgekehrt werden die für die Dienste konfigurierten IP\-Zugriffslisten nicht auf irgendein Socket angewandt, das dem Dienst über Socket\-Aktivierung weitergegeben wird\&. Daher ist es im Allgemeinen eine gute Idee, die IP\-Zugriffsliste sowohl in der Socket\- als auch der Dienste\-Unit zu replizieren\&. Es kann sinnvoll sein, eine Liste offener und eine Liste beschränkter zu verwalten, abhängig vom Einsatzfall\&. .sp Falls diese Einstellungen mehrfach in der gleichen Unit verwandt werden, werden die angegebenen Listen kombiniert\&. Falls diesen Einstellungen eine leere Zeichenkette zugewiesen wird, werden die angegebenen Zugriffslisten zurückgesetzt und alle vorherigen Einstellungen aufgehoben\&. .sp Anstelle expliziter IPv4\- oder IPv6\-Adressen und Präfixlängenfestlegungen kann auch eine kleine Gruppe von symbolischen Namen verwandt werden\&. Die folgenden Namen sind definiert: .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br \fBTabelle\ \&1.\ \&Besondere Adress\-/Netzwerknamen\fP .TS allbox tab(:); lB lB lB. T{ Symbolischer Name T}:T{ Definition T}:T{ Bedeutung T} .T& l l l l l l l l l l l l. T{ \fBany\fP T}:T{ 0\&.0\&.0\&.0/0 ::/0 T}:T{ jeder Rechner T} T{ \fBlocalhost\fP T}:T{ 127\&.0\&.0\&.0/8 ::1/128 T}:T{ alle Adressen auf dem lokalen Loopback T} T{ \fBlink\-local\fP T}:T{ 169\&.254\&.0\&.0/16 fe80::/64 T}:T{ alle linklokalen IP\-Adressen T} T{ \fBmulticast\fP T}:T{ 224\&.0\&.0\&.0/4 ff00::/8 T}:T{ alle IP\-multicasting\-Adressen T} .TE .sp 1 Beachten Sie, dass diese Einstellungen auf einigen Systemen nicht unterstützt werden könnten (beispielsweise falls eBPF\-Control\-Gruppen\-Unterstützung nicht im unterliegenden Kernel oder Container\-Verwalter aktiviert ist)\&. Diese Einstellungen haben in diesem Fall keine Auswirkung\&. Falls Kompatibilität mit solchen Systemen gewünscht ist, wird daher empfohlen, sich nicht exklusiv auf sie für IP\-Sicherheit zu verlassen\&. .sp Diese Option kann nicht durch Voranstellen von »+« vor den Ausführungspfad in der Dienste\-Unit umgangen werden, da sie für die gesamte Control\-Gruppe gilt\&. .sp Hinzugefügt in Version 235\&. .RE .PP \fISocketBindAllow=\fP\fIBinderegel\fP, \fISocketBindDeny=\fP\fIBinderegel\fP .RS 4 Erlaubt oder verweigert das Anbinden einer Socket\-Adresse an ein Socket durch Vergleich mit der \fIBinderegel\fP und Anwendung der entsprechenden Aktion, falls ein Treffer vorliegt\& .sp \fIBinderegel\fP beschreibt Socket\-Eigenschaften wie \fIAdressfamilie\fP, \fITransportprotokoll\fP und \fIIP\-Ports\fP\&. .sp \fIBinderegel\fP := { [\fIAdressfamilie\fP\fB:\fP][\fITransportprotokoll\fP\fB:\fP][\fIIP\-Ports\fP] | \fBany\fP } .sp \fIAdressfamilie\fP := { \fBipv4\fP | \fBipv6\fP } .sp \fITransportprotokoll\fP := { \fBtcp\fP | \fBudp\fP } .sp \fIIP\-Ports\fP:= { \fIIP\-Port\fP | \fIIP\-Port\-Bereich\fP } .sp Eine optionale \fIAdressfamilie\fP erwartet die Werte \fBipv4\fP oder \fBipv6\fP\&. Falls nicht angegeben, passt eine Regel auf sowohl IPv4\- als auch IPv6\-Adressen und wird abhängig von anderen Socket\-Felder angewendet, z\&.B\&. \fITransportprotokoll\fP, \fIIP\-Port\fP\&. .sp Ein optionales \fITransportprotokoll\fP erwartet den Transportprotokollnamen \fBtcp\fP oder \fBudp\fP\&. Falls nicht festgelegt, passt eine Regel auf jedes Transportprotokoll\&. .sp Ein optionaler Wert \fIIP\-Port\fP muss innerhalb des Intervalls 1…65535 (einschließlich) liegen, d\&.h\&. der dynamische Port \fB0\fP ist nicht erlaubt\&. Ein Bereich von fortlaufenden Ports wird durch \fIIP\-Port\-Bereich\fP \fIIP\-Port\-niedrig\fP\fB\-\fP\fIIP\-Port\-hoch\fP beschrieben, wobei \fIIP\-Port\-niedrig\fP kleiner oder gleich \fIIP\-Port\-hoch\fP ist und beide innerhalb von 1…65535 (einschließlich) liegen\&. .sp Ein besonderer Wert \fBany\fP kann zum Anwenden einer Regel für jede Adressfamilie, jedes Transportprotokoll und jeden Port mit einem positiven Wert verwandt werden\&. .sp Um mehrere Regeln zu erlauben, weisen Sie \fISocketBindAllow=\fP oder \fISocketBindDeny=\fP mehrfach zu\&. Um eine Zuweisung zurückzusetzen, übergeben Sie eine leere Zuweisung \fISocketBindAllow=\fP oder \fISocketBindDeny=\fP\&. .sp Für sowohl \fISocketBindAllow=\fP als auch \fISocketBindDeny=\fP ist die maximale Anzahl an Zuweisungen \fB128\fP\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Anbinden an ein Socket wird erlaubt, wenn die Socket\-Adresse auf einen Eintrag in der Liste \fISocketBindAllow=\fP passt\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Andernfalls wir das Anbinden verweigert, falls die Socket\-Adresse auf einen Eintrag in der Liste \fISocketBindDeny=\fP passt\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03' .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Andernfalls wird das Anbinden erlaubt\&. .RE .sp Die Funktionalität ist mit Cgroup\-BPF\-Hooks \fBcgroup/bind4\fP und \fBcgroup/bind6\fP implementiert\&. .sp Beispiele: .sp .if n \{\ .RS 4 .\} .nf \&... # Erlaubt das Anbinden von IPv6\-Socket\-Adressen mit Ports größer oder gleich 10000\&. [Service] SocketBindAllow=ipv6:10000\-65535 SocketBindDeny=any … # Erlaubt das Anbinden von IPv4\- und IPv6\-Socket\-Adressen mit 1234 und 4321 Ports\&. [Service] SocketBindAllow=1234 SocketBindAllow=4321 SocketBindDeny=any … # Verweigert das Anbinden von IPv6\-Socket\-Adressen\&. [Service] SocketBindDeny=ipv6 … # Verweigert das Anbinden von IPv4\- und IPv6\-Socket\-Adressen\&. [Service] SocketBindDeny=any … # Erlaubt das Anbinden nur über TCP [Service] SocketBindAllow=tcp SocketBindDeny=any … # Erlaubt das Anbinden nur über IPv6/TCP [Service] SocketBindAllow=ipv6:tcp SocketBindDeny=any … # Erlaubt das Anbinden von Ports innerhalb des Bereichs 10000\-65535 über IPv4/UDP\&. [Service] SocketBindAllow=ipv4:udp:10000\-65535 SocketBindDeny=any … .fi .if n \{\ .RE .\} .sp Diese Option kann nicht durch Voranstellen von »+« vor den Ausführungspfad in der Dienste\-Unit umgangen werden, da sie für die gesamte Control\-Gruppe gilt\&. .sp Hinzugefügt in Version 249\&. .RE .PP \fIRestrictNetworkInterfaces=\fP .RS 4 Akzeptiert eine Leerzeichen\-getrennte Liste von Netzwerkschnittstellennamen\&. Diese Option beschränkt die Netzwerkschnittstellen, die Prozesse dieser Unit verwenden können\&. Standardmäßig können Prozesse nur die aufgeführten Netzwerknamen verwenden (Erlaubnisliste)\&. Falls das erste Zeichen der Regel eine »~« ist, dann wird die Auswirkung invertiert: die Prozesse können nur Netzwerkschnittstellen verwenden, die nicht aufgeführt sind (Verbotsliste)\&. .sp Diese Option kann mehrfach aufauchen, dann werden die Netzwerkschnittstellennamen vereinigt\&. Falls die leere Zeichenkette zugewiesen wird, wird die Gruppe zurückgesetzt, alle vorherigen Zuweisungen haben keine Wirkung\&. .sp Falls Sie beide Typen dieser Option festlegen (d\&.h\&. Erlaubnisliste und Verbotsliste), wird die zuerst vorkommende Vorrang haben und die Standardaktion vorgeben (erlauben oder verbieten)\&. Dann wird das nächste Vorkommen dieser Option die aufgeführten Netzwerkschnittstellennamen zu der Menge hinzufügen oder sie daraus entfernen, abhängig von seinem Typ und der Vorgabeaktion\&. .sp Die Loopback\-Schnittstelle (»lo«) wird auf keine Weise besonders behandelt, Sie müssen sie explizit in der Unit\-Datei konfigurieren\&. .sp Beispiel 1: Erlaubnisliste .sp .if n \{\ .RS 4 .\} .nf RestrictNetworkInterfaces=eth1 RestrictNetworkInterfaces=eth2 .fi .if n \{\ .RE .\} .sp Programme in dieser Unit\-Datei werden nur in der Lage sein, die Netzwerkschnittstellen eth1 und eth2 zu verwenden\&. .sp Beispiel 2: Verbotsliste .sp .if n \{\ .RS 4 .\} .nf RestrictNetworkInterfaces=~eth1 eth2 .fi .if n \{\ .RE .\} .sp Programme in dieser Unit\-Datei werden in der Lage sein, alle Netzwerkschnittstellen außer eth1 und eth2 zu verwenden\&. .sp Beispiel 3: gemischt .sp .if n \{\ .RS 4 .\} .nf RestrictNetworkInterfaces=eth1 eth2 RestrictNetworkInterfaces=~eth1 .fi .if n \{\ .RE .\} .sp Programme in der Unit\-Datei werden nur in der Lage sein, die Netzwerkschnittstelle eth2 zu verwenden\&. .sp Diese Option kann nicht durch Voranstellen von »+« vor den Ausführungspfad in der Dienste\-Unit umgangen werden, da sie für die gesamte Control\-Gruppe gilt\&. .sp Hinzugefügt in Version 250\&. .RE .PP \fINFTSet=\fP\fIFamilie\fP:\fITabelle\fP:\fIGruppe\fP .RS 4 Diese Einstellung stellt eine Methode zur Integration dynamischer Cgroup\-, Benutzer\- und Gruppenkennungen in Firewallregeln mittels \m[blue]\fBNFT\fP\m[]\&\s-2\u[9]\d\s+2\-Gruppen bereit\&. Der Vorteil der Verwendung dieser Einstellung liegt darin, dass die Kennungen leicht als Auswahlmerkmal in Firewallregeln verwandt werden kann, wodurch in Folge feiner granulares Filtern ermöglicht wird\&. NFT\-Regeln für Cgroup\-Vergleiche verwenden nummerische Cgroup\-Kennungen, die sich bei jedem Neustart eines Dienstes ändern, wodurch sie in Systemdumgebungen andernfalls schwer zu verwenden sind\&. Von \fIDynamicUser=\fP verwandte dynamische und zufällige Kennungen können ebenfalls mit dieser Einstellung integriert werden\&. .sp Diese Option erwartet eine durch Leerraum getrennte Liste von NFT\-Gruppendefinitionen\&. Jede Definition besteht aus einem Doppelpunkt\-getrennten Tupel von Quelltyp (einer aus »cgroup«, »user«, »group«), NFT\-Adressfamilie (einer aus »arp«, »bridge«, »inet«, »ip«, »ip6«, »netdev«), Tabellenname und Gruppenname\&. Die Namen der Tabellen und Gruppen müssen den lexikalischen Beschränkungen von NFT\-Tabellennamen folgen\&. Der Typ des in NFT\-Filtern verwandten Elements muss auf den durch die Direktive (»cgroup«, »user« oder »group«) implizierten Typ passen, wie in der nachfolgenden Tabelle gezeigt\&. Wenn eine Control\-Gruppe oder eine Unit realisiert wird, wird die entsprechende Kennung an die NFT\-Gruppen angehängt und sie wird entfernt, wenn die Control\-Gruppe oder Unit entfernt wird\&. \fBsystemd\fP fügt nur Elemente in die Gruppen ein (entfernt sie daraus), daher müssen die NFT\-Regeln, \-Tabllen und \-Gruppen vorher woanders erstellt werden\&. Fehler beim Verwalten der Gruppen werden ignoriert\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br \fBTabelle\ \&2.\ \&Definierte \fP\fIQuelltyp\fP\-Werte .TS allbox tab(:); lB lB lB. T{ Quelltyp T}:T{ Beschreibung T}:T{ Entsprechender NFT\-Typname T} .T& l l l l l l l l l. T{ "cgroup" T}:T{ Control\-Gruppen\-Kennung T}:T{ "cgroupsv2" T} T{ "user" T}:T{ Benutzerkennung T}:T{ "meta skuid" T} T{ "group" T}:T{ Gruppenkennung T}:T{ "meta skgid" T} .TE .sp 1 Falls die Firewallregeln neu installiert werden, so dass die NFT\-Gruppen zerstört werden, kann der Befehl \fBsystemctl daemon\-reload\fP zur Wiederbefüllung der Gruppen verwandt werden\&. .sp Beispiel: .sp .if n \{\ .RS 4 .\} .nf [Unit] NFTSet=cgroup:inet:filter:my_service user:inet:filter:serviceuser .fi .if n \{\ .RE .\} .sp Entsprechende NFT\-Regeln: .sp .if n \{\ .RS 4 .\} .nf table inet filter { set my_service { type cgroupsv2 } set serviceuser { typeof meta skuid } chain x { socket cgroupv2 level 2 @my_service accept drop } chain y { meta skuid @serviceuser accept drop } } .fi .if n \{\ .RE .\} .sp Hinzugefügt in Version 255\&. .RE .SS BPF\-Programme .PP \fIIPIngressFilterPath=\fP\fIBPF_FS_PROGRAM_PATH\fP, \fIIPEgressFilterPath=\fP\fIBPF_FS_PROGRAM_PATH\fP .RS 4 Fügt angepasste Netzwerkverkehrsfilter hinzu, die als BPF\-Programme implementiert und auf alle über \fBAF_INET\fP\- und \fBAF_INET6\fP\-Sockets gesandten und empfangenen IP\-Pakete angewandt werden\&. Akzeptiert einen absoluten Pfad zu einem im virtuellen BPF\-Dateisystem ((/sys/fs/bpf/) verankerten BPF\-Programm\&. .sp Die mit dieser Option konfigurierten Filter werden auf allen von dieser Unit erstellten Sockets (oder im Falle von Socket\-Units, allen der Unit zugeordneten) angewandt\&. Die Filter werden zusätzlich zu den Filter aller Eltern\-Scheiben\-Units, bei denen diese Unit ein Mitglied sein könnte, sowie sämtlichen \fIIPAddressAllow=\fP\- und \fIIPAddressDeny=\fP\-Filtern in jeden dieser Units geladen\&. Standardmäßig sind keine Filter festgelegt\&. .sp Falls diese Einstellungen mehrfach in der gleichen Unit verwandt werden, werden alle angegebenen Programme angehängt\&. Falls diesen Einstellungen eine leere Zeichenkette zugewiesen wird, wird die Programmliste zurückgesetzt und alle vorher angegebenen Programme ignoriert\&. .sp Falls der Pfad \fIBPF_FS_PROGRAM_PATH\fP in der Zuweisung \fIIPIngressFilterPath=\fP bereits durch einen Eingangs\-Hook \fIBPFProgram=\fP gehandhabt wird, z\&.B\&. \fIBPFProgram=\fP\fBingress\fP:\fIBPF_FS_PROGRAM_PATH\fP, dann wird die Zuweisung immer noch als gültig betrachtet und das Programm an eine Cgroup angehängt\&. Genauso für den Pfad \fIIPEgressFilterPath=\fP und den Hook \fBegress\fP\&. .sp Beachten Sie, dass für Socket\-aktivierte Dienste die IP\-Filterprogramme, die in der Socket\-Unit konfiguriert sind, auf alle direkt zugeordneten Sockets angewandt werden, aber nicht auf irgendein Socket, das von den dafür schließlich aktivierten Diensten erstellt wurde\&. Umgekehrt werden die für die Dienste konfigurierten IP\-Filterprogramme nicht auf irgendein Socket angewandt, das dem Dienst über Socket\-Aktivierung weitergegeben wird\&. Daher ist es im Allgemeinen eine gute Idee, die IP\-Filterprogramme sowohl in der Socket\- als auch der Dienste\-Unit zu replizieren, allerdings ergibt es oft Sinn, eine Konfiguration offener und eine andere beschränkter zu verwalten, abhängig vom Einsatzfall\&. .sp Beachten Sie, dass diese Einstellungen auf einigen Systemen nicht unterstützt werden könnten (beispielsweise falls eBPF\-Control\-Gruppen\-Unterstützung nicht im unterliegenden Kernel oder Container\-Verwalter aktiviert ist)\&. Diese Einstellungen führen in diesem Fall zu einem Fehlschlag des Dienstes\&. Falls Kompatibilität mit solchen Systemen gewünscht ist, wird daher empfohlen, ihre Filter manuell (benötigt \fIDelegate=\fP\fByes\fP) anzuhängen, statt diese Einstellung zu verwenden\&. .sp Hinzugefügt in Version 243\&. .RE .PP \fIBPFProgram=\fP\fITyp\fP\fI:\fP\fIProgrammpfad\fP .RS 4 \fIBPFProgram=\fP erlaubt das Anhängen von angepassten BPF\-Programmen an die Cgroup einer Unit\&. (Dies verallgemeinert die mittels \fIIPEgressFilterPath=\fP und \fIIPIngressFilterPath=\fP für andere Hooks offengelegte Funktionalität\&.) Cgroup\-bpf\-Hooks in der Form von BPF\-Programmen, die in das BPF\-Dateisystem geladen werden, werden mit den durch die Unit ermittelten Cgroup\-Bpf\-Anhänge\-Schaltern angehängt\&. Für Details über Anhänge\-Typen und Schalter siehe \m[blue]\fBbpf\&.h\fP\m[]\&\s-2\u[10]\d\s+2\&. Schauen Sie auch in die allgemeine \m[blue]\fBBPF\-Dokumentation\fP\m[]\&\s-2\u[11]\d\s+2\&. .sp Die Spezifikation eines BPF\-Programms besteht aus einem Paar aus BPF\-Programmtyp und \-Programmpfad im Dateisystem, wobei »:« der Trenner ist: \fITyp\fP:\fIProgrammpfad\fP\&. .sp Der BPF\-Programmtyp ist äquivalent zu dem in \fBbpftool\fP(8) verwandten BPF\-Anhängetyp\&. Er kann sein: \fBegress\fP, \fBingress\fP, \fBsock_create\fP, \fBsock_ops\fP, \fBdevice\fP, \fBbind4\fP, \fBbind6\fP, \fBconnect4\fP, \fBconnect6\fP, \fBpost_bind4\fP, \fBpost_bind6\fP, \fBsendmsg4\fP, \fBsendmsg6\fP, \fBsysctl\fP, \fBrecvmsg4\fP, \fBrecvmsg6\fP, \fBgetsockopt\fP oder \fBsetsockopt\fP\&. .sp Der festgelegte Programmpfad muss ein absoluter Pfad sein, der eine BPF\-Programm\-Inode in dem bpffs\-Dateisystem referenziert (dies bedeutet im Allgemeinen, dass er mit »/sys/fs/bpf/« beginnt)\&. Falls ein festgelegtes Programm nicht existiert (d\&.h\&. es noch nicht in das BPF\-Subsystem des Kernels hochgeladen wurde), wird es nicht installiert, aber mit der Unit\-Aktivierung wird fortgefahren (in die Protokolle wird eine Warnung ausgegeben)\&. .sp Durch Setzen von \fIBPFProgram=\fP auf einen leeren Wert werden vorherige Zuweisungen unwirksam\&. .sp Mehrfache Zuweisungen des gleichen Werts Programmtyp/Pfad\-Paar haben die gleiche Auswirkung wie eine einzelne Zuweisung: Das Programm wird nur einmal angehängt\&. .sp Falls das auf \fIProgrammpfad\fP befestigte BPF\-\fBegress\fP bereits durch \fIIPEgressFilterPath=\fP behandelt wird, wird die Zuweisung \fIBPFProgram=\fP als gültig betrachtet und \fIBPFProgram=\fP an eine Cgroup angehängt\&. Ähnlich für den Hook \fBingress\fP die Zuweisung \fIIPIngressFilterPath=\fP\&. .sp Mit \fIBPFProgram=\fP übergebene BPF\-Programme werden an die Cgroup einer Unit mit dem BFP\-Anhängeschalter \fBmulti\fP angehängt, der weitere Anhängungen des gleichen \fITyp\fPs innerhalb der Cgroup\-Hierarchie mit der Unit\-Cgroup an der Spitze erlaubt\&. .sp Beispiele: .sp .if n \{\ .RS 4 .\} .nf BPFProgram=egress:/sys/fs/bpf/egress\-hook BPFProgram=bind6:/sys/fs/bpf/sock\-addr\-hook .fi .if n \{\ .RE .\} .sp Hinzugefügt in Version 249\&. .RE .SS Gerätezugriff .PP \fIDeviceAllow=\fP .RS 4 Steuert Zugriff auf bestimmte Geräteknoten durch ausgeführte Prozesse\&. Akzeptiert zwei Leerzeichen\-getrennte Zeichenketten: einen Geräteknotenkennzeichner, gefolgt von einer Kombination aus \fBr\fP, \fBw\fP, \fBm\fP, um das Lesen, Schreiben bzw\&. Erstellen von bestimmten Geräteknoten der Unit (mit mknod) zu steuern\&. Diese Funktionalität ist mittels eBPF\-Filterung implementiert\&. .sp Wenn der Zugriff auf \fIalle\fP physischen Geräte verboten werden soll, kann stattdessen \fIPrivateDevices=\fP verwandt werden\&. Siehe \fBsystemd.exec\fP(5)\&. .sp Der Geräteknotenkennzeichner ist entweder ein Pfad zu einem Geräteknoten in dem Dateisystem, beginnend mit /dev/, oder eine Zeichenkette, die entweder mit »char\-« oder »block\-« beginnt und von einem Gerätegruppennamen, wie in /proc/devices aufgeführt, gefolgt wird\&. Letzteres ist nützlich, um eine Positivliste aller aktuellen und zukünftigen Geräte, die zu einer bestimmten Gerätegruppe gehören, auf einmal anzulegen\&. Die Gerätegruppe wird entsprechend der Dateinamen\-Glob\-Muster\-Regeln abgeglichen, Sie können daher die Metazeichen »*« und »?« verwenden\&. (Beachten Sie, dass solche Glob\-Metazeichen nicht für Geräteknotenpfadspezifikationen verfügbar sind) Um Geräteknoten gemäß Major\-/Minor\-Nummern abzugleichen, verwenden Sie Geräteknotenpfade in den Verzeichnissen /dev/char/ und /dev/block/\&. Allerdings wird das Abgleichen von Geräten mittels Major\-/Minor\-Nummer im Allgemeinen nicht empfohlen, da die Zuweisungen zwischen Systemen oder verschiedenen Kernelversionen weder stabil noch portierbar sind\&. .sp Beispiel: /dev/sda5 ist ein Pfad zu einem Geräteknoten, der sich auf ein ATA\- oder SCSI\-Blockgerät bezieht\&. »char\-pts« und »char\-alsa« sind Kennzeichner für alle Pseudo\-TTY\- bzw\&. alle ALSA\-Sound\-Geräte\&. »char\-cpu/*« ist ein Kennzeichner, der auf alle Gerätegruppen mit CPU\-Bezug passt\&. .sp Beachten Sie, dass auf diese Weise definierte Positivlisten nur Gerätegruppen referenzieren sollten, die zum Startzeitpunkt der Unit auflösbar sind\&. Sämtliche Geräte, die zu diesem Zeitpunkt nicht auflösbar sind, werden nicht zur Positivliste hinzugefügt\&. Um diese Einschränkung zu umgehen, können Sie Dienste\-Units um eine Paar von \fBAfter=modprobe@xyz\&.service\fP\- und \fBWants=modprobe@xyz\&.service\fP\-Zeilen ergänzen, die die notwendigen Kernelmodule laden, die die Gerätegruppe implementieren, falls sie fehlen\&. Beispiel: .sp .if n \{\ .RS 4 .\} .nf \&... [Unit] Wants=modprobe@loop\&.service After=modprobe@loop\&.service [Service] DeviceAllow=block\-loop DeviceAllow=/dev/loop\-control … .fi .if n \{\ .RE .\} .sp Diese Option kann nicht durch Voranstellen von »+« vor den Ausführungspfad in der Dienste\-Unit umgangen werden, da sie für die gesamte Control\-Gruppe gilt\&. .sp Hinzugefügt in Version 208\&. .RE .PP \fIDevicePolicy=auto|closed|strict\fP .RS 4 Steuert die Richtlinien zum Erlauben des Gerätezugriffs: .PP \fBstrict\fP .RS 4 bedeutet, nur Zugriffstypen zu erlauben, die explizit festgelegt wurden\&. .sp Hinzugefügt in Version 208\&. .RE .PP \fBclosed\fP .RS 4 erlaubt zusätzlich Zugriff auf die Standard\-Pseudo\-Geräte einschließlich /dev/null, /dev/zero, /dev/full, /dev/random und /dev/urandom\&. .sp Hinzugefügt in Version 208\&. .RE .PP \fBauto\fP .RS 4 erlaubt zusätzlich Zugriff auf alle Geräte, falls kein explizites \fIDeviceAllow=\fP vorhanden ist\&. Dies ist die Vorgabe\&. .sp Hinzugefügt in Version 208\&. .RE .sp Diese Option kann nicht durch Voranstellen von »+« vor den Ausführungspfad in der Dienste\-Unit umgangen werden, da sie für die gesamte Control\-Gruppe gilt\&. .sp Hinzugefügt in Version 208\&. .RE .SS Control\-Gruppen\-Verwaltung .PP \fISlice=\fP .RS 4 Der Name der Scheiben\-Unit, in die die Unit hineingelegt werden soll\&. Standardmäßig system\&.slice für alle noch nicht instanziierten Units aller Unit\-Typen (außer für Scheiben\-Units selbst, siehe unten)\&. Instanzen\-Units werden standardmäßig in eine Unterscheibe von system\&.slice gelegt, die nach dem Vorlagennamen benannt ist\&. .sp Diese Option kann zur Anordnung von Systemd\-Units in einer Hierarchie von Scheiben verwandt werden, bei der bei jeder Scheibe Ressourceneinstellungen angewandt werden können\&. .sp Für Units vom Typ »Scheibe« ist der einzige für diese Einstellung akzeptierte Wert die Elternscheibe\&. Da der Name einer Scheiben\-Unit die Elternscheibe impliziert, ist es daher immer redundant, diesen Parameter direkt für Scheiben\-Units zu setzen\&. .sp Besondere Vorsicht sollten Sie walten lassen, wenn Sie sich auf die Vorgabe\-Scheibenzuweisung in vorlagenbasierten Dienste\-Units, die \fIDefaultDependencies=no\fP gesetzt haben, verlassen, siehe \fBsystemd.service\fP(5) Abschnitt »Standardabhängigkeiten« für Details\&. .sp Hinzugefügt in Version 208\&. .RE .PP \fIDelegate=\fP .RS 4 Schaltet die Delegierung weiterer Ressourcensteuereinteilung auf die Prozesse der Unit ein\&. Units, bei denen dieses aktiviert ist, können ihre eigene private Unterhierarchie von Control\-Gruppen unterhalb der Control\-Gruppe der Unit selbst einrichten und verwalten\&. Für nicht privilegierte Dienste (d\&.h\&. solchen, die die Einstellung \fIUser=\fP verwenden), erhält der relevante Benutzer Zugriff auf die Control\-Gruppe der Unit\&. .sp Wenn dies aktiviert ist, wird der Diensteverwalter es unterlassen, die Control\-Gruppen zu verändern oder Prozesse unterhalb der Control\-Gruppe der Unit zu verschieben, so dass ein klares Konzept der Eigentümerschaft etabliert wird: der Control\-Gruppenbaum auf der Ebene der Control\-Gruppe der Unit ond oberhalb (d\&.h\&. in Richtung der Wurzel\-Control\-Gruppe) gehört dem Diensteverwalter des Rechners und wird von ihm verwaltet, während der Control\-Gruppenbaum unterhalb der Control\-Gruppe der Unit der Unit selbst gehört und von dieser verwaltet wird\&. .sp Akzeptiert entweder ein logisches Argument oder eine (möglicherweise leere) Liste von Namen von Control\-Gruppen\-Controllern\&. Falls wahr, wird die Delegierung eingeschaltet und alle für die Unit unterstützten Controller werden aktiviert, wodurch sie für die Verwaltung der Prozesse der Unit verfügbar werden\&. Falls falsch, wird die Delegierung komplett ausgeschaltet (und keine zusätzlichen Controller werden aktiviert)\&. Falls auf eine Liste von Controllern gesetzt, wird die Delegierung eingeschaltet und die festgelegten Controller werden für die Unit aktiviert\&. Zuweisung der leeren Liste wird Delegierung aktivieren, aber die Liste der Controller zurücksetzen, und alle vorherigen Zuweisungen haben keine Auswirkung\&. Beachten Sie, dass andere als die festgelegten Controller auch verfügbar gemacht werden können, abhängig von der Konfiguration der enthaltenen Scheibe oder anderer, darin enthaltener Units\&. Standardmäßig falsch\&. .sp Beachten Sie, dass Controller\-Delegation an weniger privilegierten Code nur auf der vereinigten Control\-Gruppenhierarchie sicher ist\&. Entsprechend wird der Zugriff auf die angegebenen Controller nicht an unprivilegierte Dienste auf der veralteten Hierarchie gewährt, selbst falls dies angefragt wurde\&. .sp Die folgenden Controller\-Namen können festgelegt werden: \fBcpu\fP, \fBcpuacct\fP, \fBcpuset\fP, \fBio\fP, \fBblkio\fP, \fBmemory\fP, \fBdevices\fP, \fBpids\fP, \fBbpf\-firewall\fP, und \fBbpf\-devices\fP\&. .sp Nicht alle dieser Controller sind allerdings auf allen Kerneln verfügbar und einige sind spezifisch für die vereinigte Hierarchie, während andere für die veraltete Hierarchie spezifisch sind\&. Beachten Sie auch, dass der Kernel weitere Controller unterstützen könnte, die hier noch nicht berücksichtigt sind, da Delegation hierfür überhaupt noch nicht unterstützt wird oder noch nicht sauber definiert ist\&. .sp Beachten Sie, dass aufgrund der hierarchischen Natur der Cgroup\-Hierarchie alle delegierten Controller für die Eltern\- und Geschwister\-Units der Units der Delegierung aktiviert werden\&. .sp Für weitere Details über das Delegationsmodell ziehen Sie bitte \m[blue]\fBControl\-Gruppen\-APIs und Delegierung\fP\m[]\&\s-2\u[12]\d\s+2 heran\&. .sp Hinzugefügt in Version 218\&. .RE .PP \fIDelegateSubgroup=\fP .RS 4 Legt Unit\-Prozesse in die festgelegte Untergruppe der Control\-Gruppe der Unit ab\&. Akzeptiert den Namen einer gültigen Control\-Gruppe (nicht den Pfad!) als Parameter oder eine leere Zeichenkette, um diese Funktionalität abzuschalten\&. Standardmäßig abgeschaltet\&. Der Name der Control\-Gruppe muss als Dateiname benutzbar sein und Konflikte mit den Control\-Gruppen\-Attributdateien des Kernels vermeiden (d\&.h\&. cgroup\&.procs kann nicht als Name akzeptiert werden, da der kernel eine native Control\-Gruppen\-Attributdatei mit dem Namen offenlegt)\&. Diese Option hat nur Auswirkungen, wenn die Control\-Gruppendelegation mittels \fIDelegate=\fP eingeschaltet ist, siehe oben\&. Beachten Sie, dass diese Einstellung nur für den »Haupt«\-Prozess einer Unit gilt, d\&.h\&. für Dienste auf \fIExecStart=\fP, aber nicht für \fIExecReload=\fP und ähnliche\&. Falls Delegierung aktiviert ist, wird letztere immer innerhalb einer Untergruppe namens »\&.control« abgelegt\&. Die festgelegte Untergruppe wird automatisch erstellt (und möglicherweise die Eigentümerschaft an die für die Unit konfigurierten Benutzer/Gruppen abgegeben), wenn darin ein Prozess gestartet wird\&. .sp Diese Option ist nützlich, um das manuelle Verschieben des aufgerufenen Prozesses in eine Untergruppe zu vermeiden, nachdem dieser gestartet wurde\&. Da kein Prozess in den inneren Inodes der Control\-Gruppenbaumes leben sollte, ist es fast immer notwendig, den Hauptprozess (»Überwacher«) einer Unit, bei der Delegierung eingeschaltet ist, in einer Untergruppe auszuführen\&. .sp Hinzugefügt in Version 254\&. .RE .PP \fIDisableControllers=\fP .RS 4 Deaktiviert Controller, so dass sie für die Kinder einer Unit nicht eingeschaltet werden können\&. Falls ein aufgeführter Controller bereits in seinem Unterbaum in Verwendung ist, wird der Controller aus dem Unterbaum entfernt\&. Damit können Sie vermeiden, dass Konfiguration in Kind\-Units in die Lage versetzt wird, implizit oder explizit einen Controller einzuschalten\&. Standardmäßig leer\&. .sp Es können mehrere Controller durch Leerzeichen getrennt angegeben werden\&. Sie können auch \fIDisableControllers=\fP mehrfach angeben, dann wird jede neue Instanz einen anderen Controller zum Deaktivieren hinzufügen\&. Wird \fIDisableControllers=\fP selbst ohne vorhandenen Controller\-Namen übergeben, dann wird die Liste der deaktivierten Controller zurückgesetzt\&. .sp Es mag nicht möglich sein, einen Controller zu deaktivieren, nachdem die Units gestartet wurden, falls die Unit oder eines der Kinder dieser Unit Controller an seine Kinder delegiert, da kein delegierter Unterbaum der Control\-Gruppenhierarchie durch Systemd verwaltet wird\&. .sp Die folgenden Controller\-Namen können festgelegt werden: \fBcpu\fP, \fBcpuacct\fP, \fBcpuset\fP, \fBio\fP, \fBblkio\fP, \fBmemory\fP, \fBdevices\fP, \fBpids\fP, \fBbpf\-firewall\fP, und \fBbpf\-devices\fP\&. .sp Hinzugefügt in Version 240\&. .RE .SS Speicherdruck\-Steuerung .PP \fIManagedOOMSwap=auto|kill\fP, \fIManagedOOMMemoryPressure=auto|kill\fP .RS 4 Gibt an, wie \fBsystemd\-oomd.service\fP(8) mit den Cgroups dieser Unit umgeht\&. Standardmäßig \fBauto\fP\&. .sp Wird dies auf \fBkill\fP gesetzt, dann wird die Unit ein Kandidat für die Überwachung durch \fBsystemd\-oomd\fP\&. Falls die Cgroup die durch \fBoomd.conf\fP(5) oder die Unit\-Konfiguration gesetzten Beschränkungen überschreitet, dann wird \fBsystemd\-oomd\fP eine Nachkommens\-Cgroup auswählen und \fBSIGKILL\fP an alle darunter befindlichen Prozesse senden\&. Sie erhalten weitere Details über Kandidaten und das Tötenverhalten unter \fBsystemd\-oomd.service\fP(8) und \fBoomd.conf\fP(5)\&. .sp Wird eine dieser Eigenschaften auf \fBkill\fP gesetzt, führt dies zu Abhängigkeiten \fIAfter=\fP und \fIWants=\fP auf systemd\-oomd\&.service außer \fIDefaultDependencies=no\fP\&. .sp Wird dies auf \fBauto\fP gesetzt, dann wird \fBsystemd\-oomd\fP nicht aktiv diese Cgroup\-Daten zur Überwachung und Erkennung verwenden\&. Falls allerdings eine Vorfahr\-Cgroup eine dieser Eigenschaften auf \fBkill\fP gesetzt hat, dann kann eine Unit mit \fBauto\fP weiterhin ein Kandidat für \fBsystemd\-oomd\fP zum Beenden sein\&. .sp Hinzugefügt in Version 247\&. .RE .PP \fIManagedOOMMemoryPressureLimit=\fP .RS 4 Setzt die durch \fBoomd.conf\fP(5) für diese Unit (Cgroup) gesetzte Standard\-Speicher\-Belastungsgrenze außer Kraft\&. Akzeptiert einen Prozentwert zwischen (einschließlich) 0% und 100%\&. Diese Eigenschaft wird ignoriert, außer \fIManagedOOMMemoryPressure=\fP\fBkill\fP\&. Standardmäßig 0%, was bedeutet, dass die in \fBoomd.conf\fP(5) gesetzte Vorgabe verwandt wird\&. .sp Hinzugefügt in Version 247\&. .RE .PP \fIManagedOOMPreference=none|avoid|omit\fP .RS 4 Erlaubt das Herunterpriorisieren oder Überspringen der Cgroup dieser Unit als Kandidat, wenn \fBsystemd\-oomd\fP agieren muss\&. Benötigt Unterstützung für erweiterte Attribute (siehe \fBxattr\fP(7)), um \fBavoid\fP oder \fBomit\fP zu verwenden\&. .sp Bei der Berechnung von Kandidaten, um die Verwendung des Auslagerungsspeichers zu reduzieren, wird \fBsystemd\-oomd\fP diese erweiterten Attribute nur respektieren, falls die Cgroup der Unit root gehört\&. .sp Bei der Berechnung von Kandidaten, um Speicherdruck zu reduzieren, wird \fBsystemd\-oomd\fP diese erweiterten Attribute nur respektieren, falls der Eigentümer der Cgroup root ist oder falls der Eigentümber der Cgrop und der des Vorgängers identisch sind\&. Falls beispielsweise \fBsystemd\-oomd\fP Kandiaten für \-\&.slice berechnet, werden die auf die Nachfahren von /user\&.slice/user\-1000\&.slice/user@1000\&.service/ gesetzten erweiterten Attribute ignoriert, da die Nachfahren UID 1000 gehören und \-\&.slice UID 0 gehört\&. Falls aber Kandidaten für /user\&.slice/user\-1000\&.slice/user@1000\&.service/ berechnet werden, dann werden auf die Nachfahren gesetzte erweiterte Attribute respektiert\&. .sp Falls diese Eigenschaft auf \fBavoid\fP gesetzt ist, wird der Diensteverwalter dies \fBsystemd\-oomd\fP mitteilen, der diese Cgroup nur auswählen wird, wenn es keinen anderen brauchbaren Kandidaten gibt\&. .sp Falls diese Eigenschaft auf \fBomit\fP gesetzt ist, wird der Diensteverwalter dies \fBsystemd\-oomd\fP mitteilen, der diese Cgroup als Kandidat ignorieren und keinerlei Aktion auf ihr ausführen wird\&. .sp Es wird empfohlen, \fBavoid\fP und \fBomit\fP nur vereinzelt zu verwenden, da es das Kill\-Verhalten von \fBsystemd\-oomd\fP negativ beeinflussen kann. Beachten Sie auch, dass diese erweiterten Attribute nicht rekursiv auf Cgroups unterhalb der Cgroup dieser Unit angewandt werden\&. .sp Standardmäßig \fBnone\fP, was bedeutet, dass \fBsystemd\-oomd\fP die Cgroup dieser Unit wie in \fBsystemd\-oomd.service\fP(8) und \fBoomd.conf\fP(5) definiert einordnen wird\&. .sp Hinzugefügt in Version 248\&. .RE .PP \fIMemoryPressureWatch=\fP .RS 4 Steuert die Überwachung von Speicherdruck für aufgerufene Prozesse\&. Akzeptiert entweder »off«, »on«, »auto« oder »skip«\&. Falls »off«, wird dem Dienst mitgeteilt, nicht auf Speicherdruckereignisse zu beobachten, indem die Umgebungsvariable \fI$MEMORY_PRESSURE_WATCH\fP auf die wörtliche Zeichenkette »/dev/null« gesetzt wird\&. Falls »on«, wird dem Dienst mitgeteilt, auf Speicherdruckereignisse zu beobachten\&. Dies aktiviert die Speicherbuchführung für den Dienst und stellt sicher, dass die Cgroup\-Attributdatei memory\&.pressure für den Benutzer des Dienstes zum Lesen und Schreiben verfügbar ist\&. Es setzt dann die Umgebungsvariable \fI$MEMORY_PRESSURE_WATCH\fP für Prozesse, die von der Unit aufgerufen werden, auf den Dateisystempfad auf diese Datei\&. Die mittels \fIMemoryPressureThresholdSec=\fP konfigurierte Schwellwertinformation wird in der Umgebungsvariable \fI$MEMORY_PRESSURE_WRITE\fP kodiert\&. Falls der Wert »auto« gesetzt ist, wird das Protokoll immer aktiviert, falls Speicherbuchführung für die Unit sowieso aktiviert ist und andernfalls deaktiviert\&. Falls auf »skip« gesetzt, wird die Logik weder aktiviert noch deaktiviert, und die zwei Umgebungsvariablen werden nicht gesetzt\&. .sp Beachten Sie, dass Dienste die Freiheit haben, die zwei Umgebungsvariablen zu verwenden, aber es unproblematisch ist, wenn sie sie ignorieren\&. Der Umgang mit Speicherdruck muss in jedem Dienst individuell implementiert werden und bedeutet normalerweise verschiedene Dinge für verschiedene Software\&. Weitere Details zum Umgang mit Speicherdruck finden Sie in \m[blue]\fBUmgang mit Speicherdruck in Systemd\fP\m[]\&\s-2\u[13]\d\s+2\&. .sp Mittels \fBsd\-event\fP(3) implementierte Dienste können \fBsd_event_add_memory_pressure\fP(3) verwenden, um auf Speicherdruckereignisse zu beobachten und damit umzugehen\&. .sp Falls nicht explizit gesetzt ist die Vorgabe für die Einstellung \fIDefaultMemoryPressureWatch=\fP in \fBsystemd\-system.conf\fP(5)\&. .sp Hinzugefügt in Version 254\&. .RE .PP \fIMemoryPressureThresholdSec=\fP .RS 4 Setzt die Speicherdruck\-Schwellwertzeit für den Speicherdruck\-Überwacher, wie mittels \fIMemoryPressureWatch=\fP konfiguriert\&. Legt die maximale Belegungsverzögerung fest, bevor ein Speicherdruckereignis an den Dienst signalisiert wird, pro 2s\-Fenster\&. Falls nicht angegeben, ist die Vorgabe die Einstellung \fIDefaultMemoryPressureThresholdSec=\fP in \fBsystemd\-system.conf\fP(5) (die wiederum standardmäßig 200ms ist)\&. Der festgelegte Wert erwartet eine Zeiteinheit wie »ms« oder »µs«, siehe \fBsystemd.time\fP(7) zu Details für die erlaubte Syntax\&. .sp Hinzugefügt in Version 254\&. .RE .SS Speicherauszugs\-Steuerung .PP \fICoredumpReceive=\fP .RS 4 Akzeptiert ein logisches Argument\&. Diese Einstellung wird zur Aktivierung der Weiterleitung von Speicherauszügen für Container verwandt, die zu der Cgroup dieser Unit gehören\&. Units mit \fICoredumpReceive=yes\fP müssen auch mit \fIDelegate=yes\fP konfiguriert werden\&. Standardmäßig falsch\&. .sp Wenn \fBsystemd\-coredump\fP(8) einen Speicherauszug für einen Prozess aus einem Container handhabt und falls der leitende Prozess des Containers ein Nachkommen der Group mit \fICoredumpReceive=yes\fP und \fIDelegate=yes\fP ist, dann wird \fBsystemd\-coredump\fP(8) versuchen, den Speicherauszug an \fBsystemd\-coredump\fP(8) innerhalb des Containers weiterzuleiten\&. .sp Hinzugefügt in Version 255\&. .RE .SH GESCHICHTE .PP systemd 252 .RS 4 Optionen für die Steuerung der veralteten Control\-Group\-Hierarchie (\m[blue]\fBControl\-Gruppen Version 1\fP\m[]\&\s-2\u[14]\d\s+2) sind jetzt vollständig veraltet: \fICPUShares=\fP\fIGewicht\fP, \fIStartupCPUShares=\fP\fIGewicht\fP, \fIMemoryLimit=\fP\fIByte\fP, \fIBlockIOAccounting=\fP, \fIBlockIOWeight=\fP\fIGewicht\fP, \fIStartupBlockIOWeight=\fP\fIGewicht\fP, \fIBlockIODeviceWeight=\fP\fIGerät\fP\fI \fP\fIGewicht\fP, \fIBlockIOReadBandwidth=\fP\fIdevice\fP\fI \fP\fIByte\fP, \fIBlockIOWriteBandwidth=\fP\fIGerät\fP\fI \fP\fIByte\fP\&. Bitte stellen Sie auf die vereinigte Cgroup\-Hierarchie um\&. .sp Hinzugefügt in Version 252\&. .RE .SH "SIEHE AUCH" .PP \fBsystemd\fP(1), \fBsystemd\-system.conf\fP(5), \fBsystemd.unit\fP(5), \fBsystemd.service\fP(5), \fBsystemd.slice\fP(5), \fBsystemd.scope\fP(5), \fBsystemd.socket\fP(5), \fBsystemd.mount\fP(5), \fBsystemd.swap\fP(5), \fBsystemd.exec\fP(5), \fBsystemd.directives\fP(7), \fBsystemd.special\fP(7), \fBsystemd\-oomd.service\fP(8), Die Dokumentation für Control\-Gruppen und bestimmte Controller im Linux\-Kernel: \m[blue]\fBControl\-Gruppen v2\fP\m[]\&\s-2\u[2]\d\s+2\&. .SH ANMERKUNGEN .IP " 1." 4 Neue Control\-Gruppen\-Schnittstellen .RS 4 \%https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface .RE .IP " 2." 4 Control\-Gruppen v2 .RS 4 \%https://docs.kernel.org/admin\-guide/cgroup\-v2.html .RE .IP " 3." 4 CFS\-Scheduler .RS 4 \%https://docs.kernel.org/scheduler/sched\-design\-CFS.html .RE .IP " 4." 4 CFS\-Bandbreitensteuerung .RS 4 \%https://docs.kernel.org/scheduler/sched\-bwc.html .RE .IP " 5." 4 Speicherschnittstellen\-Dateien .RS 4 \%https://docs.kernel.org/admin\-guide/cgroup\-v2.html#memory\-interface\-files .RE .IP " 6." 4 Zswap .RS 4 \%https://www.kernel.org/doc/html/latest/admin\-guide/mm/zswap.html .RE .IP " 7." 4 PIDS\-Controller .RS 4 \%https://www.kernel.org/doc/html/latest/admin\-guide/cgroup\-v2.html#pid .RE .IP " 8." 4 E/A\-Schnittstellen\-Dateien .RS 4 \%https://docs.kernel.org/admin\-guide/cgroup\-v2.html#io\-interface\-files .RE .IP " 9." 4 NFT .RS 4 \%https://netfilter.org/projects/nftables/index.html .RE .IP 10. 4 bpf.h .RS 4 \%https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/include/uapi/linux/bpf.h .RE .IP 11. 4 BPF\-Dokumentation .RS 4 \%https://docs.kernel.org/bpf/ .RE .IP 12. 4 Control\-Gruppen\-APIs und Delegierung .RS 4 \%https://systemd.io/CGROUP_DELEGATION .RE .IP 13. 4 Umgang mit Speicherdruck in Systemd .RS 4 \%https://systemd.io/MEMORY_PRESSURE .RE .IP 14. 4 Control\-Gruppen Version 1 .RS 4 \%https://docs.kernel.org/admin\-guide/cgroup\-v1/index.html .RE .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .