mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 15:21:37 +03:00
10f2864111
This new setting allows configuration of CFS period on the CPU cgroup, instead of using a hardcoded default of 100ms. Tested: - Legacy cgroup + Unified cgroup - systemctl set-property - systemctl show - Confirmed that the cgroup settings (such as cpu.cfs_period_ns) were set appropriately, including updating the CPU quota (cpu.cfs_quota_ns) when CPUQuotaPeriodSec= is updated. - Checked that clamping works properly when either period or (quota * period) are below the resolution of 1ms, or if period is above the max of 1s.
467 lines
9.0 KiB
Markdown
467 lines
9.0 KiB
Markdown
---
|
|
title: What settings are currently available for transient units?
|
|
---
|
|
|
|
# What settings are currently available for transient units?
|
|
|
|
Our intention is to make all settings that are available as unit file settings
|
|
also available for transient units, through the D-Bus API. At the moment, some
|
|
unit types (device, swap, target) are not supported at all via unit types,
|
|
but most others are pretty well supported, with some notable omissions.
|
|
|
|
The lists below contain all settings currently available in unit files. The
|
|
ones currently available in transient units are prefixed with `✓`.
|
|
|
|
## Generic Unit Settings
|
|
|
|
Most generic unit settings are available for transient units.
|
|
|
|
```
|
|
✓ Description=
|
|
✓ Documentation=
|
|
✓ SourcePath=
|
|
✓ Requires=
|
|
✓ Requisite=
|
|
✓ Wants=
|
|
✓ BindsTo=
|
|
✓ Conflicts=
|
|
✓ Before=
|
|
✓ After=
|
|
✓ OnFailure=
|
|
✓ PropagatesReloadTo=
|
|
✓ ReloadPropagatedFrom=
|
|
✓ PartOf=
|
|
✓ JoinsNamespaceOf=
|
|
✓ RequiresMountsFor=
|
|
✓ StopWhenUnneeded=
|
|
✓ RefuseManualStart=
|
|
✓ RefuseManualStop=
|
|
✓ AllowIsolate=
|
|
✓ DefaultDependencies=
|
|
✓ OnFailureJobMode=
|
|
✓ IgnoreOnIsolate=
|
|
✓ JobTimeoutSec=
|
|
✓ JobRunningTimeoutSec=
|
|
✓ JobTimeoutAction=
|
|
✓ JobTimeoutRebootArgument=
|
|
✓ StartLimitIntervalSec=SECONDS
|
|
✓ StartLimitBurst=UNSIGNED
|
|
✓ StartLimitAction=ACTION
|
|
✓ FailureAction=
|
|
✓ SuccessAction=
|
|
✓ FailureActionExitStatus=
|
|
✓ SuccessActionExitStatus=
|
|
✓ AddRef=
|
|
✓ RebootArgument=STRING
|
|
✓ ConditionPathExists=
|
|
✓ ConditionPathExistsGlob=
|
|
✓ ConditionPathIsDirectory=
|
|
✓ ConditionPathIsSymbolicLink=
|
|
✓ ConditionPathIsMountPoint=
|
|
✓ ConditionPathIsReadWrite=
|
|
✓ ConditionDirectoryNotEmpty=
|
|
✓ ConditionFileNotEmpty=
|
|
✓ ConditionFileIsExecutable=
|
|
✓ ConditionNeedsUpdate=
|
|
✓ ConditionFirstBoot=
|
|
✓ ConditionKernelCommandLine=
|
|
✓ ConditionKernelVersion=
|
|
✓ ConditionArchitecture=
|
|
✓ ConditionVirtualization=
|
|
✓ ConditionSecurity=
|
|
✓ ConditionCapability=
|
|
✓ ConditionHost=
|
|
✓ ConditionACPower=
|
|
✓ ConditionUser=
|
|
✓ ConditionGroup=
|
|
✓ ConditionControlGroupController=
|
|
✓ AssertPathExists=
|
|
✓ AssertPathExistsGlob=
|
|
✓ AssertPathIsDirectory=
|
|
✓ AssertPathIsSymbolicLink=
|
|
✓ AssertPathIsMountPoint=
|
|
✓ AssertPathIsReadWrite=
|
|
✓ AssertDirectoryNotEmpty=
|
|
✓ AssertFileNotEmpty=
|
|
✓ AssertFileIsExecutable=
|
|
✓ AssertNeedsUpdate=
|
|
✓ AssertFirstBoot=
|
|
✓ AssertKernelCommandLine=
|
|
✓ AssertKernelVersion=
|
|
✓ AssertArchitecture=
|
|
✓ AssertVirtualization=
|
|
✓ AssertSecurity=
|
|
✓ AssertCapability=
|
|
✓ AssertHost=
|
|
✓ AssertACPower=
|
|
✓ AssertUser=
|
|
✓ AssertGroup=
|
|
✓ AssertControlGroupController=
|
|
✓ CollectMode=
|
|
```
|
|
|
|
## Execution-Related Settings
|
|
|
|
All execution-related settings are available for transient units.
|
|
|
|
```
|
|
✓ WorkingDirectory=
|
|
✓ RootDirectory=
|
|
✓ RootImage=
|
|
✓ User=
|
|
✓ Group=
|
|
✓ SupplementaryGroups=
|
|
✓ Nice=
|
|
✓ OOMScoreAdjust=
|
|
✓ IOSchedulingClass=
|
|
✓ IOSchedulingPriority=
|
|
✓ CPUSchedulingPolicy=
|
|
✓ CPUSchedulingPriority=
|
|
✓ CPUSchedulingResetOnFork=
|
|
✓ CPUAffinity=
|
|
✓ UMask=
|
|
✓ Environment=
|
|
✓ EnvironmentFile=
|
|
✓ PassEnvironment=
|
|
✓ UnsetEnvironment=
|
|
✓ DynamicUser=
|
|
✓ RemoveIPC=
|
|
✓ StandardInput=
|
|
✓ StandardOutput=
|
|
✓ StandardError=
|
|
✓ StandardInputText=
|
|
✓ StandardInputData=
|
|
✓ TTYPath=
|
|
✓ TTYReset=
|
|
✓ TTYVHangup=
|
|
✓ TTYVTDisallocate=
|
|
✓ SyslogIdentifier=
|
|
✓ SyslogFacility=
|
|
✓ SyslogLevel=
|
|
✓ SyslogLevelPrefix=
|
|
✓ LogLevelMax=
|
|
✓ LogExtraFields=
|
|
✓ LogRateLimitIntervalSec=
|
|
✓ LogRateLimitBurst=
|
|
✓ SecureBits=
|
|
✓ CapabilityBoundingSet=
|
|
✓ AmbientCapabilities=
|
|
✓ TimerSlackNSec=
|
|
✓ NoNewPrivileges=
|
|
✓ KeyringMode=
|
|
✓ SystemCallFilter=
|
|
✓ SystemCallArchitectures=
|
|
✓ SystemCallErrorNumber=
|
|
✓ MemoryDenyWriteExecute=
|
|
✓ RestrictNamespaces=
|
|
✓ RestrictRealtime=
|
|
✓ RestrictAddressFamilies=
|
|
✓ LockPersonality=
|
|
✓ LimitCPU=
|
|
✓ LimitFSIZE=
|
|
✓ LimitDATA=
|
|
✓ LimitSTACK=
|
|
✓ LimitCORE=
|
|
✓ LimitRSS=
|
|
✓ LimitNOFILE=
|
|
✓ LimitAS=
|
|
✓ LimitNPROC=
|
|
✓ LimitMEMLOCK=
|
|
✓ LimitLOCKS=
|
|
✓ LimitSIGPENDING=
|
|
✓ LimitMSGQUEUE=
|
|
✓ LimitNICE=
|
|
✓ LimitRTPRIO=
|
|
✓ LimitRTTIME=
|
|
✓ ReadWritePaths=
|
|
✓ ReadOnlyPaths=
|
|
✓ InaccessiblePaths=
|
|
✓ BindPaths=
|
|
✓ BindReadOnlyPaths=
|
|
✓ TemporaryFileSystem=
|
|
✓ PrivateTmp=
|
|
✓ PrivateDevices=
|
|
✓ PrivateMounts=
|
|
✓ ProtectKernelTunables=
|
|
✓ ProtectKernelModules=
|
|
✓ ProtectControlGroups=
|
|
✓ PrivateNetwork=
|
|
✓ PrivateUsers=
|
|
✓ ProtectSystem=
|
|
✓ ProtectHome=
|
|
✓ MountFlags=
|
|
✓ MountAPIVFS=
|
|
✓ Personality=
|
|
✓ RuntimeDirectoryPreserve=
|
|
✓ RuntimeDirectoryMode=
|
|
✓ RuntimeDirectory=
|
|
✓ StateDirectoryMode=
|
|
✓ StateDirectory=
|
|
✓ CacheDirectoryMode=
|
|
✓ CacheDirectory=
|
|
✓ LogsDirectoryMode=
|
|
✓ LogsDirectory=
|
|
✓ ConfigurationDirectoryMode=
|
|
✓ ConfigurationDirectory=
|
|
✓ PAMName=
|
|
✓ IgnoreSIGPIPE=
|
|
✓ UtmpIdentifier=
|
|
✓ UtmpMode=
|
|
✓ SELinuxContext=
|
|
✓ SmackProcessLabel=
|
|
✓ AppArmorProfile=
|
|
✓ Slice=
|
|
```
|
|
|
|
## Resource Control Settings
|
|
|
|
All cgroup/resource control settings are available for transient units
|
|
|
|
```
|
|
✓ CPUAccounting=
|
|
✓ CPUWeight=
|
|
✓ StartupCPUWeight=
|
|
✓ CPUShares=
|
|
✓ StartupCPUShares=
|
|
✓ CPUQuota=
|
|
✓ CPUQuotaPeriodSec=
|
|
✓ MemoryAccounting=
|
|
✓ MemoryMin=
|
|
✓ MemoryLow=
|
|
✓ MemoryHigh=
|
|
✓ MemoryMax=
|
|
✓ MemorySwapMax=
|
|
✓ MemoryLimit=
|
|
✓ DeviceAllow=
|
|
✓ DevicePolicy=
|
|
✓ IOAccounting=
|
|
✓ IOWeight=
|
|
✓ StartupIOWeight=
|
|
✓ IODeviceWeight=
|
|
✓ IOReadBandwidthMax=
|
|
✓ IOWriteBandwidthMax=
|
|
✓ IOReadIOPSMax=
|
|
✓ IOWriteIOPSMax=
|
|
✓ BlockIOAccounting=
|
|
✓ BlockIOWeight=
|
|
✓ StartupBlockIOWeight=
|
|
✓ BlockIODeviceWeight=
|
|
✓ BlockIOReadBandwidth=
|
|
✓ BlockIOWriteBandwidth=
|
|
✓ TasksAccounting=
|
|
✓ TasksMax=
|
|
✓ Delegate=
|
|
✓ IPAccounting=
|
|
✓ IPAddressAllow=
|
|
✓ IPAddressDeny=
|
|
```
|
|
|
|
## Process Killing Settings
|
|
|
|
All process killing settings are available for transient units:
|
|
|
|
```
|
|
✓ SendSIGKILL=
|
|
✓ SendSIGHUP=
|
|
✓ KillMode=
|
|
✓ KillSignal=
|
|
✓ FinalKillSignal=
|
|
✓ WatchdogSignal=
|
|
```
|
|
|
|
## Service Unit Settings
|
|
|
|
Most service unit settings are available for transient units.
|
|
|
|
```
|
|
✓ PIDFile=
|
|
✓ ExecStartPre=
|
|
✓ ExecStart=
|
|
✓ ExecStartPost=
|
|
✓ ExecReload=
|
|
✓ ExecStop=
|
|
✓ ExecStopPost=
|
|
✓ RestartSec=
|
|
✓ TimeoutStartSec=
|
|
✓ TimeoutStopSec=
|
|
✓ TimeoutSec=
|
|
✓ RuntimeMaxSec=
|
|
✓ WatchdogSec=
|
|
✓ Type=
|
|
✓ Restart=
|
|
✓ RootDirectoryStartOnly=
|
|
✓ RemainAfterExit=
|
|
✓ GuessMainPID=
|
|
✓ RestartPreventExitStatus=
|
|
✓ RestartForceExitStatus=
|
|
✓ SuccessExitStatus=
|
|
✓ NonBlocking=
|
|
✓ BusName=
|
|
✓ FileDescriptorStoreMax=
|
|
✓ NotifyAccess=
|
|
Sockets=
|
|
✓ USBFunctionDescriptors=
|
|
✓ USBFunctionStrings=
|
|
```
|
|
|
|
## Mount Unit Settings
|
|
|
|
All mount unit settings are available to transient units:
|
|
|
|
```
|
|
✓ What=
|
|
✓ Where=
|
|
✓ Options=
|
|
✓ Type=
|
|
✓ TimeoutSec=
|
|
✓ DirectoryMode=
|
|
✓ SloppyOptions=
|
|
✓ LazyUnmount=
|
|
✓ ForceUnmount=
|
|
```
|
|
|
|
## Automount Unit Settings
|
|
|
|
All automount unit setting is available to transient units:
|
|
|
|
```
|
|
✓ Where=
|
|
✓ DirectoryMode=
|
|
✓ TimeoutIdleSec=
|
|
```
|
|
|
|
## Timer Unit Settings
|
|
|
|
Most timer unit settings are available to transient units.
|
|
|
|
```
|
|
✓ OnCalendar=
|
|
✓ OnActiveSec=
|
|
✓ OnBootSec=
|
|
✓ OnStartupSec=
|
|
✓ OnUnitActiveSec=
|
|
✓ OnUnitInactiveSec=
|
|
✓ Persistent=
|
|
✓ WakeSystem=
|
|
✓ RemainAfterElapse=
|
|
✓ AccuracySec=
|
|
✓ RandomizedDelaySec=
|
|
Unit=
|
|
```
|
|
|
|
## Slice Unit Settings
|
|
|
|
Slice units are fully supported as transient units, but they have no settings
|
|
of their own beyond the generic unit and resource control settings.
|
|
|
|
## Scope Unit Settings
|
|
|
|
Scope units are fully supported as transient units (in fact they only exist as
|
|
such).
|
|
|
|
```
|
|
✓ TimeoutStopSec=
|
|
```
|
|
|
|
## Socket Unit Settings
|
|
|
|
Most socket unit settings are available to transient units.
|
|
|
|
```
|
|
✓ ListenStream=
|
|
✓ ListenDatagram=
|
|
✓ ListenSequentialPacket=
|
|
✓ ListenFIFO=
|
|
✓ ListenNetlink=
|
|
✓ ListenSpecial=
|
|
✓ ListenMessageQueue=
|
|
✓ ListenUSBFunction=
|
|
✓ SocketProtocol=
|
|
✓ BindIPv6Only=
|
|
✓ Backlog=
|
|
✓ BindToDevice=
|
|
✓ ExecStartPre=
|
|
✓ ExecStartPost=
|
|
✓ ExecStopPre=
|
|
✓ ExecStopPost=
|
|
✓ TimeoutSec=
|
|
✓ SocketUser=
|
|
✓ SocketGroup=
|
|
✓ SocketMode=
|
|
✓ DirectoryMode=
|
|
✓ Accept=
|
|
✓ Writable=
|
|
✓ MaxConnections=
|
|
✓ MaxConnectionsPerSource=
|
|
✓ KeepAlive=
|
|
✓ KeepAliveTimeSec=
|
|
✓ KeepAliveIntervalSec=
|
|
✓ KeepAliveProbes=
|
|
✓ DeferAcceptSec=
|
|
✓ NoDelay=
|
|
✓ Priority=
|
|
✓ ReceiveBuffer=
|
|
✓ SendBuffer=
|
|
✓ IPTOS=
|
|
✓ IPTTL=
|
|
✓ Mark=
|
|
✓ PipeSize=
|
|
✓ FreeBind=
|
|
✓ Transparent=
|
|
✓ Broadcast=
|
|
✓ PassCredentials=
|
|
✓ PassSecurity=
|
|
✓ TCPCongestion=
|
|
✓ ReusePort=
|
|
✓ MessageQueueMaxMessages=
|
|
✓ MessageQueueMessageSize=
|
|
✓ RemoveOnStop=
|
|
✓ Symlinks=
|
|
✓ FileDescriptorName=
|
|
Service=
|
|
✓ TriggerLimitIntervalSec=
|
|
✓ TriggerLimitBurst=
|
|
✓ SmackLabel=
|
|
✓ SmackLabelIPIn=
|
|
✓ SmackLabelIPOut=
|
|
✓ SELinuxContextFromNet=
|
|
```
|
|
|
|
## Swap Unit Settings
|
|
|
|
Swap units are currently not available at all as transient units:
|
|
|
|
```
|
|
What=
|
|
Priority=
|
|
Options=
|
|
TimeoutSec=
|
|
```
|
|
|
|
## Path Unit Settings
|
|
|
|
Most path unit settings are available to transient units.
|
|
|
|
```
|
|
✓ PathExists=
|
|
✓ PathExistsGlob=
|
|
✓ PathChanged=
|
|
✓ PathModified=
|
|
✓ DirectoryNotEmpty=
|
|
Unit=
|
|
✓ MakeDirectory=
|
|
✓ DirectoryMode=
|
|
```
|
|
|
|
## Install Section
|
|
|
|
The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
|
|
|
|
```
|
|
Alias=
|
|
WantedBy=
|
|
RequiredBy=
|
|
Also=
|
|
DefaultInstance=
|
|
```
|