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