]> git.ipfire.org Git - thirdparty/systemd.git/blob - docs/TRANSIENT-SETTINGS.md
Merge pull request #11701 from poettering/discover-bls
[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 ✓ RestrictAddressFamilies=
159 ✓ LockPersonality=
160 ✓ LimitCPU=
161 ✓ LimitFSIZE=
162 ✓ LimitDATA=
163 ✓ LimitSTACK=
164 ✓ LimitCORE=
165 ✓ LimitRSS=
166 ✓ LimitNOFILE=
167 ✓ LimitAS=
168 ✓ LimitNPROC=
169 ✓ LimitMEMLOCK=
170 ✓ LimitLOCKS=
171 ✓ LimitSIGPENDING=
172 ✓ LimitMSGQUEUE=
173 ✓ LimitNICE=
174 ✓ LimitRTPRIO=
175 ✓ LimitRTTIME=
176 ✓ ReadWritePaths=
177 ✓ ReadOnlyPaths=
178 ✓ InaccessiblePaths=
179 ✓ BindPaths=
180 ✓ BindReadOnlyPaths=
181 ✓ TemporaryFileSystem=
182 ✓ PrivateTmp=
183 ✓ PrivateDevices=
184 ✓ PrivateMounts=
185 ✓ ProtectKernelTunables=
186 ✓ ProtectKernelModules=
187 ✓ ProtectControlGroups=
188 ✓ PrivateNetwork=
189 ✓ PrivateUsers=
190 ✓ ProtectSystem=
191 ✓ ProtectHome=
192 ✓ MountFlags=
193 ✓ MountAPIVFS=
194 ✓ Personality=
195 ✓ RuntimeDirectoryPreserve=
196 ✓ RuntimeDirectoryMode=
197 ✓ RuntimeDirectory=
198 ✓ StateDirectoryMode=
199 ✓ StateDirectory=
200 ✓ CacheDirectoryMode=
201 ✓ CacheDirectory=
202 ✓ LogsDirectoryMode=
203 ✓ LogsDirectory=
204 ✓ ConfigurationDirectoryMode=
205 ✓ ConfigurationDirectory=
206 ✓ PAMName=
207 ✓ IgnoreSIGPIPE=
208 ✓ UtmpIdentifier=
209 ✓ UtmpMode=
210 ✓ SELinuxContext=
211 ✓ SmackProcessLabel=
212 ✓ AppArmorProfile=
213 ✓ Slice=
214 ```
215
216 ## Resource Control Settings
217
218 All cgroup/resource control settings are available for transient units
219
220 ```
221 ✓ CPUAccounting=
222 ✓ CPUWeight=
223 ✓ StartupCPUWeight=
224 ✓ CPUShares=
225 ✓ StartupCPUShares=
226 ✓ CPUQuota=
227 ✓ CPUQuotaPeriodSec=
228 ✓ MemoryAccounting=
229 ✓ MemoryMin=
230 ✓ MemoryLow=
231 ✓ MemoryHigh=
232 ✓ MemoryMax=
233 ✓ MemorySwapMax=
234 ✓ MemoryLimit=
235 ✓ DeviceAllow=
236 ✓ DevicePolicy=
237 ✓ IOAccounting=
238 ✓ IOWeight=
239 ✓ StartupIOWeight=
240 ✓ IODeviceWeight=
241 ✓ IOReadBandwidthMax=
242 ✓ IOWriteBandwidthMax=
243 ✓ IOReadIOPSMax=
244 ✓ IOWriteIOPSMax=
245 ✓ BlockIOAccounting=
246 ✓ BlockIOWeight=
247 ✓ StartupBlockIOWeight=
248 ✓ BlockIODeviceWeight=
249 ✓ BlockIOReadBandwidth=
250 ✓ BlockIOWriteBandwidth=
251 ✓ TasksAccounting=
252 ✓ TasksMax=
253 ✓ Delegate=
254 ✓ IPAccounting=
255 ✓ IPAddressAllow=
256 ✓ IPAddressDeny=
257 ```
258
259 ## Process Killing Settings
260
261 All process killing settings are available for transient units:
262
263 ```
264 ✓ SendSIGKILL=
265 ✓ SendSIGHUP=
266 ✓ KillMode=
267 ✓ KillSignal=
268 ✓ FinalKillSignal=
269 ✓ WatchdogSignal=
270 ```
271
272 ## Service Unit Settings
273
274 Most service unit settings are available for transient units.
275
276 ```
277 ✓ PIDFile=
278 ✓ ExecStartPre=
279 ✓ ExecStart=
280 ✓ ExecStartPost=
281 ✓ ExecReload=
282 ✓ ExecStop=
283 ✓ ExecStopPost=
284 ✓ RestartSec=
285 ✓ TimeoutStartSec=
286 ✓ TimeoutStopSec=
287 ✓ TimeoutSec=
288 ✓ RuntimeMaxSec=
289 ✓ WatchdogSec=
290 ✓ Type=
291 ✓ Restart=
292 ✓ RootDirectoryStartOnly=
293 ✓ RemainAfterExit=
294 ✓ GuessMainPID=
295 ✓ RestartPreventExitStatus=
296 ✓ RestartForceExitStatus=
297 ✓ SuccessExitStatus=
298 ✓ NonBlocking=
299 ✓ BusName=
300 ✓ FileDescriptorStoreMax=
301 ✓ NotifyAccess=
302 Sockets=
303 ✓ USBFunctionDescriptors=
304 ✓ USBFunctionStrings=
305 ```
306
307 ## Mount Unit Settings
308
309 All mount unit settings are available to transient units:
310
311 ```
312 ✓ What=
313 ✓ Where=
314 ✓ Options=
315 ✓ Type=
316 ✓ TimeoutSec=
317 ✓ DirectoryMode=
318 ✓ SloppyOptions=
319 ✓ LazyUnmount=
320 ✓ ForceUnmount=
321 ```
322
323 ## Automount Unit Settings
324
325 All automount unit setting is available to transient units:
326
327 ```
328 ✓ Where=
329 ✓ DirectoryMode=
330 ✓ TimeoutIdleSec=
331 ```
332
333 ## Timer Unit Settings
334
335 Most timer unit settings are available to transient units.
336
337 ```
338 ✓ OnCalendar=
339 ✓ OnActiveSec=
340 ✓ OnBootSec=
341 ✓ OnStartupSec=
342 ✓ OnUnitActiveSec=
343 ✓ OnUnitInactiveSec=
344 ✓ Persistent=
345 ✓ WakeSystem=
346 ✓ RemainAfterElapse=
347 ✓ AccuracySec=
348 ✓ RandomizedDelaySec=
349 Unit=
350 ```
351
352 ## Slice Unit Settings
353
354 Slice units are fully supported as transient units, but they have no settings
355 of their own beyond the generic unit and resource control settings.
356
357 ## Scope Unit Settings
358
359 Scope units are fully supported as transient units (in fact they only exist as
360 such).
361
362 ```
363 ✓ TimeoutStopSec=
364 ```
365
366 ## Socket Unit Settings
367
368 Most socket unit settings are available to transient units.
369
370 ```
371 ✓ ListenStream=
372 ✓ ListenDatagram=
373 ✓ ListenSequentialPacket=
374 ✓ ListenFIFO=
375 ✓ ListenNetlink=
376 ✓ ListenSpecial=
377 ✓ ListenMessageQueue=
378 ✓ ListenUSBFunction=
379 ✓ SocketProtocol=
380 ✓ BindIPv6Only=
381 ✓ Backlog=
382 ✓ BindToDevice=
383 ✓ ExecStartPre=
384 ✓ ExecStartPost=
385 ✓ ExecStopPre=
386 ✓ ExecStopPost=
387 ✓ TimeoutSec=
388 ✓ SocketUser=
389 ✓ SocketGroup=
390 ✓ SocketMode=
391 ✓ DirectoryMode=
392 ✓ Accept=
393 ✓ Writable=
394 ✓ MaxConnections=
395 ✓ MaxConnectionsPerSource=
396 ✓ KeepAlive=
397 ✓ KeepAliveTimeSec=
398 ✓ KeepAliveIntervalSec=
399 ✓ KeepAliveProbes=
400 ✓ DeferAcceptSec=
401 ✓ NoDelay=
402 ✓ Priority=
403 ✓ ReceiveBuffer=
404 ✓ SendBuffer=
405 ✓ IPTOS=
406 ✓ IPTTL=
407 ✓ Mark=
408 ✓ PipeSize=
409 ✓ FreeBind=
410 ✓ Transparent=
411 ✓ Broadcast=
412 ✓ PassCredentials=
413 ✓ PassSecurity=
414 ✓ TCPCongestion=
415 ✓ ReusePort=
416 ✓ MessageQueueMaxMessages=
417 ✓ MessageQueueMessageSize=
418 ✓ RemoveOnStop=
419 ✓ Symlinks=
420 ✓ FileDescriptorName=
421 Service=
422 ✓ TriggerLimitIntervalSec=
423 ✓ TriggerLimitBurst=
424 ✓ SmackLabel=
425 ✓ SmackLabelIPIn=
426 ✓ SmackLabelIPOut=
427 ✓ SELinuxContextFromNet=
428 ```
429
430 ## Swap Unit Settings
431
432 Swap units are currently not available at all as transient units:
433
434 ```
435 What=
436 Priority=
437 Options=
438 TimeoutSec=
439 ```
440
441 ## Path Unit Settings
442
443 Most path unit settings are available to transient units.
444
445 ```
446 ✓ PathExists=
447 ✓ PathExistsGlob=
448 ✓ PathChanged=
449 ✓ PathModified=
450 ✓ DirectoryNotEmpty=
451 Unit=
452 ✓ MakeDirectory=
453 ✓ DirectoryMode=
454 ```
455
456 ## Install Section
457
458 The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
459
460 ```
461 Alias=
462 WantedBy=
463 RequiredBy=
464 Also=
465 DefaultInstance=
466 ```