]> git.ipfire.org Git - thirdparty/systemd.git/blame - docs/TRANSIENT-SETTINGS.md
cgroup v2: Don't require CPU controller for CPU accounting in 4.15+
[thirdparty/systemd.git] / docs / TRANSIENT-SETTINGS.md
CommitLineData
91d2f195
LP
1# What settings are currently available for transient units?
2
3Our intention is to make all settings that are available as unit file settings
4also available for transient units, through the D-Bus API. At the moment, some
8a211c8e
YW
5unit types (device, swap, target) are not supported at all via unit types,
6but most others are pretty well supported, with some notable omissions.
91d2f195
LP
7
8The lists below contain all settings currently available in unit files. The
9ones currently available in transient units are prefixed with `✓`.
10
11## Generic Unit Settings
12
c0d64e0e 13Most generic unit settings are available for transient units.
91d2f195
LP
14
15```
16✓ Description=
c0d64e0e
YW
17✓ Documentation=
18✓ SourcePath=
91d2f195
LP
19✓ Requires=
20✓ Requisite=
21✓ Wants=
22✓ BindsTo=
23✓ Conflicts=
24✓ Before=
25✓ After=
26✓ OnFailure=
27✓ PropagatesReloadTo=
28✓ ReloadPropagatedFrom=
29✓ PartOf=
c0d64e0e
YW
30✓ JoinsNamespaceOf=
31✓ RequiresMountsFor=
32✓ StopWhenUnneeded=
33✓ RefuseManualStart=
34✓ RefuseManualStop=
35✓ AllowIsolate=
91d2f195 36✓ DefaultDependencies=
c0d64e0e
YW
37✓ OnFailureJobMode=
38✓ IgnoreOnIsolate=
39✓ JobTimeoutSec=
40✓ JobRunningTimeoutSec=
41✓ JobTimeoutAction=
42✓ JobTimeoutRebootArgument=
43✓ StartLimitIntervalSec=SECONDS
44✓ StartLimitBurst=UNSIGNED
45✓ StartLimitAction=ACTION
91d2f195
LP
46✓ FailureAction=
47✓ SuccessAction=
48✓ AddRef=
c0d64e0e
YW
49✓ RebootArgument=STRING
50✓ ConditionPathExists=
51✓ ConditionPathExistsGlob=
52✓ ConditionPathIsDirectory=
53✓ ConditionPathIsSymbolicLink=
54✓ ConditionPathIsMountPoint=
55✓ ConditionPathIsReadWrite=
56✓ ConditionDirectoryNotEmpty=
57✓ ConditionFileNotEmpty=
58✓ ConditionFileIsExecutable=
59✓ ConditionNeedsUpdate=
60✓ ConditionFirstBoot=
61✓ ConditionKernelCommandLine=
62✓ ConditionKernelVersion=
63✓ ConditionArchitecture=
64✓ ConditionVirtualization=
65✓ ConditionSecurity=
66✓ ConditionCapability=
67✓ ConditionHost=
68✓ ConditionACPower=
69✓ ConditionUser=
70✓ ConditionGroup=
71✓ ConditionControlGroupController=
72✓ AssertPathExists=
73✓ AssertPathExistsGlob=
74✓ AssertPathIsDirectory=
75✓ AssertPathIsSymbolicLink=
76✓ AssertPathIsMountPoint=
77✓ AssertPathIsReadWrite=
78✓ AssertDirectoryNotEmpty=
79✓ AssertFileNotEmpty=
80✓ AssertFileIsExecutable=
81✓ AssertNeedsUpdate=
82✓ AssertFirstBoot=
83✓ AssertKernelCommandLine=
84✓ AssertKernelVersion=
85✓ AssertArchitecture=
86✓ AssertVirtualization=
87✓ AssertSecurity=
88✓ AssertCapability=
89✓ AssertHost=
90✓ AssertACPower=
91✓ AssertUser=
92✓ AssertGroup=
93✓ AssertControlGroupController=
91d2f195
LP
94✓ CollectMode=
95```
96
97## Execution-Related Settings
98
99All execution-related settings are available for transient units.
100
101```
102✓ WorkingDirectory=
103✓ RootDirectory=
104✓ RootImage=
105✓ User=
106✓ Group=
107✓ SupplementaryGroups=
108✓ Nice=
109✓ OOMScoreAdjust=
110✓ IOSchedulingClass=
111✓ IOSchedulingPriority=
112✓ CPUSchedulingPolicy=
113✓ CPUSchedulingPriority=
114✓ CPUSchedulingResetOnFork=
115✓ CPUAffinity=
116✓ UMask=
117✓ Environment=
118✓ EnvironmentFile=
119✓ PassEnvironment=
120✓ UnsetEnvironment=
121✓ DynamicUser=
122✓ RemoveIPC=
123✓ StandardInput=
124✓ StandardOutput=
125✓ StandardError=
126✓ StandardInputText=
127✓ StandardInputData=
128✓ TTYPath=
129✓ TTYReset=
130✓ TTYVHangup=
131✓ TTYVTDisallocate=
132✓ SyslogIdentifier=
133✓ SyslogFacility=
134✓ SyslogLevel=
135✓ SyslogLevelPrefix=
136✓ LogLevelMax=
137✓ LogExtraFields=
90fc172e
AZ
138✓ LogRateLimitIntervalSec=
139✓ LogRateLimitBurst=
91d2f195
LP
140✓ SecureBits=
141✓ CapabilityBoundingSet=
142✓ AmbientCapabilities=
143✓ TimerSlackNSec=
144✓ NoNewPrivileges=
145✓ KeyringMode=
146✓ SystemCallFilter=
147✓ SystemCallArchitectures=
148✓ SystemCallErrorNumber=
149✓ MemoryDenyWriteExecute=
150✓ RestrictNamespaces=
151✓ RestrictRealtime=
152✓ RestrictAddressFamilies=
153✓ LockPersonality=
154✓ LimitCPU=
155✓ LimitFSIZE=
156✓ LimitDATA=
157✓ LimitSTACK=
158✓ LimitCORE=
159✓ LimitRSS=
160✓ LimitNOFILE=
161✓ LimitAS=
162✓ LimitNPROC=
163✓ LimitMEMLOCK=
164✓ LimitLOCKS=
165✓ LimitSIGPENDING=
166✓ LimitMSGQUEUE=
167✓ LimitNICE=
168✓ LimitRTPRIO=
169✓ LimitRTTIME=
170✓ ReadWritePaths=
171✓ ReadOnlyPaths=
172✓ InaccessiblePaths=
173✓ BindPaths=
174✓ BindReadOnlyPaths=
24743efe 175✓ TemporaryFileSystem=
91d2f195
LP
176✓ PrivateTmp=
177✓ PrivateDevices=
31f06f56 178✓ PrivateMounts=
91d2f195
LP
179✓ ProtectKernelTunables=
180✓ ProtectKernelModules=
181✓ ProtectControlGroups=
182✓ PrivateNetwork=
183✓ PrivateUsers=
184✓ ProtectSystem=
185✓ ProtectHome=
186✓ MountFlags=
187✓ MountAPIVFS=
188✓ Personality=
189✓ RuntimeDirectoryPreserve=
190✓ RuntimeDirectoryMode=
191✓ RuntimeDirectory=
192✓ StateDirectoryMode=
193✓ StateDirectory=
194✓ CacheDirectoryMode=
195✓ CacheDirectory=
196✓ LogsDirectoryMode=
197✓ LogsDirectory=
198✓ ConfigurationDirectoryMode=
199✓ ConfigurationDirectory=
200✓ PAMName=
201✓ IgnoreSIGPIPE=
202✓ UtmpIdentifier=
203✓ UtmpMode=
204✓ SELinuxContext=
205✓ SmackProcessLabel=
206✓ AppArmorProfile=
207✓ Slice=
208```
209
210## Resource Control Settings
211
212All cgroup/resource control settings are available for transient units
213
214```
215✓ CPUAccounting=
216✓ CPUWeight=
217✓ StartupCPUWeight=
218✓ CPUShares=
219✓ StartupCPUShares=
220✓ CPUQuota=
221✓ MemoryAccounting=
48422635 222✓ MemoryMin=
91d2f195
LP
223✓ MemoryLow=
224✓ MemoryHigh=
225✓ MemoryMax=
226✓ MemorySwapMax=
227✓ MemoryLimit=
228✓ DeviceAllow=
229✓ DevicePolicy=
230✓ IOAccounting=
231✓ IOWeight=
232✓ StartupIOWeight=
233✓ IODeviceWeight=
234✓ IOReadBandwidthMax=
235✓ IOWriteBandwidthMax=
236✓ IOReadIOPSMax=
237✓ IOWriteIOPSMax=
238✓ BlockIOAccounting=
239✓ BlockIOWeight=
240✓ StartupBlockIOWeight=
241✓ BlockIODeviceWeight=
242✓ BlockIOReadBandwidth=
243✓ BlockIOWriteBandwidth=
244✓ TasksAccounting=
245✓ TasksMax=
246✓ Delegate=
247✓ IPAccounting=
248✓ IPAddressAllow=
249✓ IPAddressDeny=
250```
251
252## Process Killing Settings
253
254All process killing settings are available for transient units:
255
256```
257✓ SendSIGKILL=
258✓ SendSIGHUP=
259✓ KillMode=
260✓ KillSignal=
fbb48d4c 261✓ FinalKillSignal=
c87700a1 262✓ WatchdogSignal=
91d2f195
LP
263```
264
265## Service Unit Settings
266
c0d64e0e 267Most service unit settings are available for transient units.
91d2f195
LP
268
269```
c0d64e0e 270✓ PIDFile=
91d2f195
LP
271✓ ExecStartPre=
272✓ ExecStart=
273✓ ExecStartPost=
274✓ ExecReload=
275✓ ExecStop=
276✓ ExecStopPost=
c0d64e0e
YW
277✓ RestartSec=
278✓ TimeoutStartSec=
279✓ TimeoutStopSec=
280✓ TimeoutSec=
91d2f195 281✓ RuntimeMaxSec=
c0d64e0e 282✓ WatchdogSec=
91d2f195
LP
283✓ Type=
284✓ Restart=
c0d64e0e 285✓ RootDirectoryStartOnly=
91d2f195 286✓ RemainAfterExit=
c0d64e0e
YW
287✓ GuessMainPID=
288✓ RestartPreventExitStatus=
289✓ RestartForceExitStatus=
290✓ SuccessExitStatus=
91d2f195 291✓ NonBlocking=
c0d64e0e 292✓ BusName=
91d2f195
LP
293✓ FileDescriptorStoreMax=
294✓ NotifyAccess=
295 Sockets=
c0d64e0e
YW
296✓ USBFunctionDescriptors=
297✓ USBFunctionStrings=
91d2f195
LP
298```
299
300## Mount Unit Settings
301
c0d64e0e 302All mount unit settings are available to transient units:
91d2f195
LP
303
304```
305✓ What=
c0d64e0e 306✓ Where=
91d2f195
LP
307✓ Options=
308✓ Type=
c0d64e0e
YW
309✓ TimeoutSec=
310✓ DirectoryMode=
311✓ SloppyOptions=
312✓ LazyUnmount=
313✓ ForceUnmount=
91d2f195
LP
314```
315
316## Automount Unit Settings
317
c0d64e0e 318All automount unit setting is available to transient units:
91d2f195
LP
319
320```
c0d64e0e
YW
321✓ Where=
322✓ DirectoryMode=
91d2f195
LP
323✓ TimeoutIdleSec=
324```
325
326## Timer Unit Settings
327
328Most timer unit settings are available to transient units.
329
330```
331✓ OnCalendar=
332✓ OnActiveSec=
333✓ OnBootSec=
334✓ OnStartupSec=
335✓ OnUnitActiveSec=
336✓ OnUnitInactiveSec=
d852bda1 337✓ Persistent=
91d2f195
LP
338✓ WakeSystem=
339✓ RemainAfterElapse=
340✓ AccuracySec=
341✓ RandomizedDelaySec=
342 Unit=
343```
344
345## Slice Unit Settings
346
347Slice units are fully supported as transient units, but they have no settings
348of their own beyond the generic unit and resource control settings.
349
350## Scope Unit Settings
351
352Scope units are fully supported as transient units (in fact they only exist as
c0d64e0e
YW
353such).
354
355```
356✓ TimeoutStopSec=
357```
91d2f195
LP
358
359## Socket Unit Settings
360
8a211c8e 361Most socket unit settings are available to transient units.
91d2f195
LP
362
363```
8a211c8e
YW
364✓ ListenStream=
365✓ ListenDatagram=
366✓ ListenSequentialPacket=
367✓ ListenFIFO=
368✓ ListenNetlink=
369✓ ListenSpecial=
370✓ ListenMessageQueue=
371✓ ListenUSBFunction=
372✓ SocketProtocol=
373✓ BindIPv6Only=
374✓ Backlog=
375✓ BindToDevice=
376✓ ExecStartPre=
377✓ ExecStartPost=
378✓ ExecStopPre=
379✓ ExecStopPost=
380✓ TimeoutSec=
381✓ SocketUser=
382✓ SocketGroup=
383✓ SocketMode=
384✓ DirectoryMode=
385✓ Accept=
386✓ Writable=
387✓ MaxConnections=
388✓ MaxConnectionsPerSource=
389✓ KeepAlive=
390✓ KeepAliveTimeSec=
391✓ KeepAliveIntervalSec=
392✓ KeepAliveProbes=
393✓ DeferAcceptSec=
394✓ NoDelay=
395✓ Priority=
396✓ ReceiveBuffer=
397✓ SendBuffer=
398✓ IPTOS=
399✓ IPTTL=
400✓ Mark=
401✓ PipeSize=
402✓ FreeBind=
403✓ Transparent=
404✓ Broadcast=
405✓ PassCredentials=
406✓ PassSecurity=
407✓ TCPCongestion=
408✓ ReusePort=
409✓ MessageQueueMaxMessages=
410✓ MessageQueueMessageSize=
411✓ RemoveOnStop=
412✓ Symlinks=
413✓ FileDescriptorName=
91d2f195 414 Service=
8a211c8e
YW
415✓ TriggerLimitIntervalSec=
416✓ TriggerLimitBurst=
417✓ SmackLabel=
418✓ SmackLabelIPIn=
419✓ SmackLabelIPOut=
420✓ SELinuxContextFromNet=
91d2f195
LP
421```
422
423## Swap Unit Settings
424
425Swap units are currently not available at all as transient units:
426
427```
428 What=
429 Priority=
430 Options=
431 TimeoutSec=
432```
433
434## Path Unit Settings
435
d852bda1 436Most path unit settings are available to transient units.
91d2f195
LP
437
438```
d852bda1
YW
439✓ PathExists=
440✓ PathExistsGlob=
441✓ PathChanged=
442✓ PathModified=
443✓ DirectoryNotEmpty=
91d2f195 444 Unit=
d852bda1
YW
445✓ MakeDirectory=
446✓ DirectoryMode=
91d2f195
LP
447```
448
449## Install Section
450
451The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
452
453```
454 Alias=
455 WantedBy=
456 RequiredBy=
457 Also=
458 DefaultInstance=
459```