OPTIONEN¶
Alle Optionen werden im Abschnitt »[Manager]« konfiguriert:
LogLevel=, LogTarget=, LogColor=,
LogLocation=, DumpCore=yes, CrashChangeVT=no,
CrashShell=no, CrashReboot=no, ShowStatus=yes,
DefaultStandardOutput=journal,
DefaultStandardError=inherit
Konfigurieren verschiedene Parameter grundlegender
Verwaltungsaktionen. Diese Optionen können durch die
Befehlszeilenargumente des betreffenden Prozesses und des Kernels außer
Kraft gesetzt werden. Siehe
systemd(1) für Details.
CtrlAltDelBurstAction=
Definiert, welche Aktionen ausgeführt werden,
falls der Benutzer Strg-Alt-Entf mehr als sieben Mal in 2 s drückt.
Kann auf »reboot-force«, »poweroff-force«,
»reboot-immediate«, »poweroff-immediate« gesetzt
oder mittels »none« deaktiviert werden.
Standardmäßig »reboot-force«.
CPUAffinity=
Konfiguriert die CPU-Affinität für den
Diensteverwalter sowie die Vorgabe-CPU-Affinität für alle mit
Fork erstellten Prozesse. Erhält eine Liste von CPU-Indizes oder
Bereichen, die entweder durch Leerraum oder Kommata getrennt sind.
CPU-Bereiche werden durch den unteren und oberen CPU-Index, getrennt durch
einen Gedankenstrich, festgelegt. Individuelle Dienste können die
CPU-Affinität für ihre Prozesse mit der Einstellung
CPUAffinity= in Unit-Dateien außer Kraft setzen, siehe
systemd.exec(5).
RuntimeWatchdogSec=, ShutdownWatchdogSec=
Konfiguriert den Hardware-Watchdog zur Laufzeit und beim
Systemstart. Akzeptiert einen Wert in Sekunden (oder in anderen Zeiteinheiten,
falls »ms«, »min«, »h«,
»d«, »w« angehängt wird) für die
Zeitüberschreitung. Falls
RuntimeWatchdogSec= auf einen von Null
verschiedenen Wert gesetzt wird, wird die Watchdog-Hardware (/dev/watchdog
oder der mit
WatchdogDevice= oder der Kerneloption
systemd.watchdog-device= konfigurierte Pfad) programmiert, um das
System automatisch neu zu starten, falls es nicht innerhalb des festgelegten
Zeitüberschreitungsintervalls kontaktiert wurde. Der Systemverwalter
wird sicherstellen, es mindestens einmal in der Hälfte des festgelegten
Zeitüberschreitungsintervalls zu kontaktieren. Diese
Funktionalität benötigt die Existenz eines
Hardware-Watchdog-Geräts, wie dies typisch in eingebetteten und
Serversystemen der Fall ist. Nicht alle Hardware-Watchdogs erlauben die
Konfiguration aller möglichen Neustartzeitüberschreitungswerte,
falls notwendig, wird die am nächsten liegende
Zeitüberschreitung ausgewählt.
ShutdownWatchdogSec= kann
zur Konfiguration des Hardware-Watchdogs, wenn das System aufgefordert wird,
neuzustarten, verwandt werden. Es funktioniert als Sicherheitsnetz, um
sicherzustellen, dass der Neustart stattfindet, selbst falls ein sauberer
Neustartversuch in eine Zeitüberschreitung läuft. Beachten Sie,
dass die Zeitüberschreitung
ShutdownWatchdogSec= nur für
die zweite Phase des Neustarts gilt, d.h. nachdem alle normalen Dienste
bereits beendet wurden und nachdem der System- und Diensteverwalterprozess
(PID 1) durch das Programm systemd-shutdown ersetzt wurde, siehe
bootup(7) des Systems für Details. Während der ersten
Phase der Herunterfahraktion läuft der System- und Diensteverwalter
weiter und daher wird
RuntimeWatchdogSec= noch berücksichtigt.
Um eine Zeitüberschreitung für diese erste Phase des
Systemherunterfahrens zu definieren, konfigurieren Sie
JobTimeoutSec=
und
JobTimeoutAction= im Abschnitt »[Unit]« der Unit
shutdown.target. Standardmäßig ist
RuntimeWatchdogSec= 0
(aus) und
ShutdownWatchdogSec= 10 Minuten. Diese Einstellungen haben
keinen Effekt, falls kein Hardware-Watchdog verfügbar ist.
WatchdogDevice=
Konfiguriert das Hardware-Watchdog-Gerät, das die
Laufzeit- und Herunterfahr-Watchdog-Zeitgeber öffnen und benutzen wird.
Standardmäßig /dev/watchdog. Diese Einstellung hat keinen
Effekt, falls kein Hardware-Watchdog verfügbar ist.
CapabilityBoundingSet=
Steuert, welche Capabilities in der
Capability-Begrenzungsmenge für PID 1 und seine Kindprozesse
aufgenommen werden sollen. Siehe
capabilities(7) für Details.
Akzeptiert eine durch Leerraumzeichen getrennte Liste von Capability-Namen,
wie sie von
cap_from_name(3) eingelesen werden. Die aufgeführten
Capabilities werden in die Begrenzungsmenge aufgenommen, alle anderen werden
entfernt. Falls der Liste der Capabilities ein ~ vorangestellt wird, werden
alle außer den aufgeführten Capabilities aufgenommen, der Effekt
der Zuweisung ist invertiert. Beachten Sie, dass diese Option auch die
respektiven Capabilities in der effektiven, erlaubten und vererbbaren
Capability-Menge betrifft. Die Capability-Begrenzungsmenge kann auch
für Units auch individuell mittels der Anweisung
CapabilityBoundingSet= für diese Unit konfiguriert werden.
Beachten Sie aber, dass Capabilities, die für PID 1 ausgeschlossen
wurden, nicht für individuelle Units wiedererlangt werden
können, sie sind auf Dauer verloren.
NoNewPrivileges=
Akzeptiert ein logisches Argument. Falls wahr, stellt sie
sicher, dass PID 1 und alle seine Kinder niemals Privilegien durch
execve(2) erhalten können (d.h. mittels der Bits setuid oder
setgid oder Dateisystem-Capabilities). Standardmäßig falsch.
Allzweckdistributionen benötigen typischerweise Programme mit gesetzten
Setuid- oder Setgid-Bits und werden daher nicht korrekt funktionieren, wenn
diese Option aktiviert ist. Individuelle Units können diese Option
nicht deaktivieren. Siehe auch
Schalter »Keine neuen
Privilegien«[1].
SystemCallArchitectures=
Akzeptiert eine durch Leerzeichen getrennte Liste von
Architekturkennzeichnern. Wählt aus, von welchen Architekturen auf
diesem System Systemaufrufe aufgerufen werden dürfen. Dies kann als
effektive systemweite Art zur Deaktivierung von Aufrufen von nicht-nativen
Programmen verwandt werden, um beispielsweise die Ausführung von
32-Bit-x86-Programmen auf 64-Bit-x86-64-Systemen zu verbieten. Diese Option
agiert systemweit und arbeitet ähnlich der Einstellung
SystemCallArchitectures= von Unit-Dateien, siehe
systemd.exec(5)
für Details. Diese Einstellung ist standardmäßig die
leere Liste, d.h. dass in diesem Fall keine Filterung der Systemaufrufe
basierend auf der Architektur angewandt wird. Bekannte Architekturkennzeichner
sind »x86«, »x86-64«, »x32«,
»arm« und der besondere Kennzeichner »native«.
Letzterer wird implizit auf die native Architektur des Systems abgebildet
(oder genauer, der Architektur, für die der Systemverwalter kompiliert
wurde). Setzen Sie diese Einstellung auf »native«, um die
Ausführung nicht nativer Programme zu verbieten. Wenn ein Programm
einen Systemaufruf einer Architektur ausführt, die nicht in dieser
Einstellung aufgeführt ist, wird sie sofort mit dem Signal SIGSYS
beendet.
TimerSlackNSec=
Setzt den Zeitgeberspielraum in Nanosekunden für
PID 1, der von allen ausgeführten Prozessen geerbt wird, außer
er wird individuell außer Kraft gesetzt, beispielsweise mit der
Einstellung
TimerSlackNSec= in Dienste-Units (für Details siehe
systemd.exec(5)). Der Zeitgeberspielraum steuert die Genauigkeit der
durch Systemd-Zeitgeber ausgelösten Aufwachaktionen. Siehe
prctl(2) für weitere Informationen. Beachten Sie, dass im
Gegensatz zu den meisten anderen Zeitdauerdefinitionen dieser Parameter einen
Ganzzahlwert in Nanosekunden akzeptiert, falls keine Einheit angegeben ist. Es
werden auch die normalen Zeiteinheiten verstanden.
DefaultTimerAccuracySec=
Setzt die Standardgenauigkeit der Zeitgeber-Units. Dies
steuert die globale Voreinstellung für die Einstellung
AccuracySec= von Zeitgeber-Units, siehe
systemd.timer(5)
für Details.
AccuracySec=-Einstellungen in individuellen Units
setzen die globale Vorgabe für die bestimmte Unit außer Kraft.
Standardmäßig 1 Minute. Beachten Sie, dass die Genauigkeit der
Zeitgeber-Units auch von dem Zeitgeberspielraum beeinflusst wird, siehe
TimerSlackNSec= oben.
DefaultTimeoutStartSec=, DefaultTimeoutStopSec=,
DefaultRestartSec=
Konfiguriert die Standardzeitüberschreitung zum
Starten und Beenden von Units sowie die Standardzeit, die zwischen
automatischen Neustarts von Units geschlafen wird, wie dies pro Unit in
TimeoutStartSec=,
TimeoutStopSec= und
RestartSec=
konfiguriert ist (für Dienste, siehe
systemd.service(5)
für Details über die Einstellungen pro Unit).
Standardmäßig deaktiviert, wenn Dienst mit
Type=oneshot
verwandt wird. Für Units, die keine Dienste sind, setzt
DefaultTimeoutStartSec= den Standardwert von
TimeoutSec=.
DefaultTimeoutStartSec= und
DefaultTimeoutStopSec= sind
standardmäßig 90 s.
DefaultRestartSec= ist
standardmäßig 100 ms.
DefaultStartLimitIntervalSec=,
DefaultStartLimitBurst=
Konfiguriert die Standard-Startratenbegrenzung von Units,
wie dies pro Dienst in
StartLimitIntervalSec= und
StartLimitBurst= konfiguriert ist. Siehe
systemd.service(5)
für Details über die Einstellungen pro Dienst.
DefaultStartLimitIntervalSec= ist standardmäßig 10 s.
DefaultStartLimitBurst= ist standardmäßig 5.
DefaultEnvironment=
Setzt die Verwaltungs-Umgebungsvariablen, die an alle
ausgeführten Prozesse weitergegeben werden. Erhält eine Liste
von durch Leerzeichen getrennten Variablenzuweisungen. Siehe
environ(7)
für Details über Umgebungsvariablen.
Beispiel:
DefaultEnvironment="VAR1=Wort1 Wort2" VAR2=Wort3 "VAR3=Wort 5 6"
Setzt drei Variablen "VAR1", "VAR2",
"VAR3".
DefaultCPUAccounting=, DefaultBlockIOAccounting=,
DefaultMemoryAccounting=, DefaultTasksAccounting=,
DefaultIOAccounting=, DefaultIPAccounting=
Konfiguriert die
Standard-Buchführungs-Einstellungen, wie sie für jede Unit durch
CPUAccounting=,
BlockIOAccounting=,
MemoryAccounting=,
TasksAccounting=,
IOAccounting= und
IPAccounting=
konfiguriert werden. Siehe
systemd.resource-control(5) für
Details über die Einstellungen pro Unit.
DefaultTasksAccounting=
ist standardmäßig »yes«,
DefaultMemoryAccounting= ist »yes«.
DefaultCPUAccounting= ist standardmäßig
»yes«, falls die Aktivierung der CPU-Buchführung nicht
die Aktivierung der CPU-Controller benötigt (Linux 4.15+ verwendet die
vereinigte Hierarchie für die Ressourcensteuerung), andernfalls ist die
Vorgabe »no«. Die anderen drei Einstellungen sind
standardmäßig »no.
DefaultTasksMax=
Konfiguriert die Vorgabewerte der
TasksMax=-Einstellungen für jede Unit. Siehe
systemd.resource-control(5) für Details. Diese Einstellung wird
auf alle Unit-Typen, die Ressourcensteuerungseinstellungen
unterstützen, mit der Ausnahme von Slice-Units, angewandt.
DefaultLimitCPU=, DefaultLimitFSIZE=,
DefaultLimitDATA=, DefaultLimitSTACK=,
DefaultLimitCORE=, DefaultLimitRSS=,
DefaultLimitNOFILE=, DefaultLimitAS=,
DefaultLimitNPROC=, DefaultLimitMEMLOCK=,
DefaultLimitLOCKS=, DefaultLimitSIGPENDING=,
DefaultLimitMSGQUEUE=, DefaultLimitNICE=,
DefaultLimitRTPRIO=, DefaultLimitRTTIME=
Diese Einstellungen steuern verschiedene
Ressourcenbegrenzungen für Units. Siehe
setrlimit(2) für
Details. Die Ressourcenbegrenzung kann in zwei Formaten festgelegt werden,
Wert, um die harten und weichen Grenzen auf den gleichen Wert zu setzen
oder
weich:hart, um beide Begrenzungen individuell zu setzen (z.B.
DefaultLimitAS=4G:16G). Verwenden Sie die Zeichenkette
infinity, um
keine Begrenzung für eine angegebene Ressource zu konfigurieren. Die
multiplikativen Endungen K (=1024), M (=1024*1024) und so weiter für G,
T, P und E können für in Bytes gemessene Ressourcenbegrenzungen
verwandt werden (z.B. DefaultLimitAS=16G). Für die Begrenzungen, die
sich auf Zeitwerte beziehen, können die gewöhnlichen
Zeiteinheiten ms, s, min, h und so weiter verwandt werden (siehe
systemd.time(7) für Details). Beachten Sie, dass als
Vorgabezeiteinheit Sekunden impliziert ist, falls keine Zeiteinheit für
DefaultLimitCPU= festgelegt ist, während für
DefaultLimitRTTIME= die Vorgabeeinheit Mikrosekunden impliziert werden.
Beachten Sie auch, dass die effektive Granularität der Begrenzungen
ihre Durchsetzung beeinflussen können. Beispielsweise werden die
für
DefaultLimitCPU= festgelegten Zeitbegrenzungen implizit auf
ein Vielfaches von 1 s gerundet. Diese Einstellungen können in
individuellen Units mittels der entsprechenden LimitXXX=-Anweisungen
außer Kraft gesetzt werden. Beachten Sie, dass diese
Ressourcenbegrenzungen nur die Vorgabewerte für Units sind, sie werden
nicht auf PID 1 selbst angewandt.