]> git.ipfire.org Git - thirdparty/systemd.git/blob - doc/TRANSIENT-SETTINGS.md
logind: voidify a function we never check the return value of
[thirdparty/systemd.git] / doc / TRANSIENT-SETTINGS.md
1 # What settings are currently available for transient units?
2
3 Our intention is to make all settings that are available as unit file settings
4 also available for transient units, through the D-Bus API. At the moment, some
5 unit types (device, swap, target) are not supported at all via unit types,
6 but most others are pretty well supported, with some notable omissions.
7
8 The lists below contain all settings currently available in unit files. The
9 ones currently available in transient units are prefixed with `✓`.
10
11 ## Generic Unit Settings
12
13 Most generic unit settings are available for transient units.
14
15 ```
16 ✓ Description=
17 ✓ Documentation=
18 ✓ SourcePath=
19 ✓ Requires=
20 ✓ Requisite=
21 ✓ Wants=
22 ✓ BindsTo=
23 ✓ Conflicts=
24 ✓ Before=
25 ✓ After=
26 ✓ OnFailure=
27 ✓ PropagatesReloadTo=
28 ✓ ReloadPropagatedFrom=
29 ✓ PartOf=
30 ✓ JoinsNamespaceOf=
31 ✓ RequiresMountsFor=
32 ✓ StopWhenUnneeded=
33 ✓ RefuseManualStart=
34 ✓ RefuseManualStop=
35 ✓ AllowIsolate=
36 ✓ DefaultDependencies=
37 ✓ OnFailureJobMode=
38 ✓ IgnoreOnIsolate=
39 ✓ JobTimeoutSec=
40 ✓ JobRunningTimeoutSec=
41 ✓ JobTimeoutAction=
42 ✓ JobTimeoutRebootArgument=
43 ✓ StartLimitIntervalSec=SECONDS
44 ✓ StartLimitBurst=UNSIGNED
45 ✓ StartLimitAction=ACTION
46 ✓ FailureAction=
47 ✓ SuccessAction=
48 ✓ AddRef=
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=
94 ✓ CollectMode=
95 ```
96
97 ## Execution-Related Settings
98
99 All 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=
138 ✓ SecureBits=
139 ✓ CapabilityBoundingSet=
140 ✓ AmbientCapabilities=
141 ✓ TimerSlackNSec=
142 ✓ NoNewPrivileges=
143 ✓ KeyringMode=
144 ✓ SystemCallFilter=
145 ✓ SystemCallArchitectures=
146 ✓ SystemCallErrorNumber=
147 ✓ MemoryDenyWriteExecute=
148 ✓ RestrictNamespaces=
149 ✓ RestrictRealtime=
150 ✓ RestrictAddressFamilies=
151 ✓ LockPersonality=
152 ✓ LimitCPU=
153 ✓ LimitFSIZE=
154 ✓ LimitDATA=
155 ✓ LimitSTACK=
156 ✓ LimitCORE=
157 ✓ LimitRSS=
158 ✓ LimitNOFILE=
159 ✓ LimitAS=
160 ✓ LimitNPROC=
161 ✓ LimitMEMLOCK=
162 ✓ LimitLOCKS=
163 ✓ LimitSIGPENDING=
164 ✓ LimitMSGQUEUE=
165 ✓ LimitNICE=
166 ✓ LimitRTPRIO=
167 ✓ LimitRTTIME=
168 ✓ ReadWritePaths=
169 ✓ ReadOnlyPaths=
170 ✓ InaccessiblePaths=
171 ✓ BindPaths=
172 ✓ BindReadOnlyPaths=
173 ✓ TemporaryFileSystem=
174 ✓ PrivateTmp=
175 ✓ PrivateDevices=
176 ✓ ProtectKernelTunables=
177 ✓ ProtectKernelModules=
178 ✓ ProtectControlGroups=
179 ✓ PrivateNetwork=
180 ✓ PrivateUsers=
181 ✓ ProtectSystem=
182 ✓ ProtectHome=
183 ✓ MountFlags=
184 ✓ MountAPIVFS=
185 ✓ Personality=
186 ✓ RuntimeDirectoryPreserve=
187 ✓ RuntimeDirectoryMode=
188 ✓ RuntimeDirectory=
189 ✓ StateDirectoryMode=
190 ✓ StateDirectory=
191 ✓ CacheDirectoryMode=
192 ✓ CacheDirectory=
193 ✓ LogsDirectoryMode=
194 ✓ LogsDirectory=
195 ✓ ConfigurationDirectoryMode=
196 ✓ ConfigurationDirectory=
197 ✓ PAMName=
198 ✓ IgnoreSIGPIPE=
199 ✓ UtmpIdentifier=
200 ✓ UtmpMode=
201 ✓ SELinuxContext=
202 ✓ SmackProcessLabel=
203 ✓ AppArmorProfile=
204 ✓ Slice=
205 ```
206
207 ## Resource Control Settings
208
209 All cgroup/resource control settings are available for transient units
210
211 ```
212 ✓ CPUAccounting=
213 ✓ CPUWeight=
214 ✓ StartupCPUWeight=
215 ✓ CPUShares=
216 ✓ StartupCPUShares=
217 ✓ CPUQuota=
218 ✓ MemoryAccounting=
219 ✓ MemoryLow=
220 ✓ MemoryHigh=
221 ✓ MemoryMax=
222 ✓ MemorySwapMax=
223 ✓ MemoryLimit=
224 ✓ DeviceAllow=
225 ✓ DevicePolicy=
226 ✓ IOAccounting=
227 ✓ IOWeight=
228 ✓ StartupIOWeight=
229 ✓ IODeviceWeight=
230 ✓ IOReadBandwidthMax=
231 ✓ IOWriteBandwidthMax=
232 ✓ IOReadIOPSMax=
233 ✓ IOWriteIOPSMax=
234 ✓ BlockIOAccounting=
235 ✓ BlockIOWeight=
236 ✓ StartupBlockIOWeight=
237 ✓ BlockIODeviceWeight=
238 ✓ BlockIOReadBandwidth=
239 ✓ BlockIOWriteBandwidth=
240 ✓ TasksAccounting=
241 ✓ TasksMax=
242 ✓ Delegate=
243 ✓ IPAccounting=
244 ✓ IPAddressAllow=
245 ✓ IPAddressDeny=
246 ```
247
248 ## Process Killing Settings
249
250 All process killing settings are available for transient units:
251
252 ```
253 ✓ SendSIGKILL=
254 ✓ SendSIGHUP=
255 ✓ KillMode=
256 ✓ KillSignal=
257 ```
258
259 ## Service Unit Settings
260
261 Most service unit settings are available for transient units.
262
263 ```
264 ✓ PIDFile=
265 ✓ ExecStartPre=
266 ✓ ExecStart=
267 ✓ ExecStartPost=
268 ✓ ExecReload=
269 ✓ ExecStop=
270 ✓ ExecStopPost=
271 ✓ RestartSec=
272 ✓ TimeoutStartSec=
273 ✓ TimeoutStopSec=
274 ✓ TimeoutSec=
275 ✓ RuntimeMaxSec=
276 ✓ WatchdogSec=
277 ✓ Type=
278 ✓ Restart=
279 ✓ PermissionsStartOnly=
280 ✓ RootDirectoryStartOnly=
281 ✓ RemainAfterExit=
282 ✓ GuessMainPID=
283 ✓ RestartPreventExitStatus=
284 ✓ RestartForceExitStatus=
285 ✓ SuccessExitStatus=
286 ✓ NonBlocking=
287 ✓ BusName=
288 ✓ FileDescriptorStoreMax=
289 ✓ NotifyAccess=
290 Sockets=
291 ✓ USBFunctionDescriptors=
292 ✓ USBFunctionStrings=
293 ```
294
295 ## Mount Unit Settings
296
297 All mount unit settings are available to transient units:
298
299 ```
300 ✓ What=
301 ✓ Where=
302 ✓ Options=
303 ✓ Type=
304 ✓ TimeoutSec=
305 ✓ DirectoryMode=
306 ✓ SloppyOptions=
307 ✓ LazyUnmount=
308 ✓ ForceUnmount=
309 ```
310
311 ## Automount Unit Settings
312
313 All automount unit setting is available to transient units:
314
315 ```
316 ✓ Where=
317 ✓ DirectoryMode=
318 ✓ TimeoutIdleSec=
319 ```
320
321 ## Timer Unit Settings
322
323 Most timer unit settings are available to transient units.
324
325 ```
326 ✓ OnCalendar=
327 ✓ OnActiveSec=
328 ✓ OnBootSec=
329 ✓ OnStartupSec=
330 ✓ OnUnitActiveSec=
331 ✓ OnUnitInactiveSec=
332 ✓ Persistent=
333 ✓ WakeSystem=
334 ✓ RemainAfterElapse=
335 ✓ AccuracySec=
336 ✓ RandomizedDelaySec=
337 Unit=
338 ```
339
340 ## Slice Unit Settings
341
342 Slice units are fully supported as transient units, but they have no settings
343 of their own beyond the generic unit and resource control settings.
344
345 ## Scope Unit Settings
346
347 Scope units are fully supported as transient units (in fact they only exist as
348 such).
349
350 ```
351 ✓ TimeoutStopSec=
352 ```
353
354 ## Socket Unit Settings
355
356 Most socket unit settings are available to transient units.
357
358 ```
359 ✓ ListenStream=
360 ✓ ListenDatagram=
361 ✓ ListenSequentialPacket=
362 ✓ ListenFIFO=
363 ✓ ListenNetlink=
364 ✓ ListenSpecial=
365 ✓ ListenMessageQueue=
366 ✓ ListenUSBFunction=
367 ✓ SocketProtocol=
368 ✓ BindIPv6Only=
369 ✓ Backlog=
370 ✓ BindToDevice=
371 ✓ ExecStartPre=
372 ✓ ExecStartPost=
373 ✓ ExecStopPre=
374 ✓ ExecStopPost=
375 ✓ TimeoutSec=
376 ✓ SocketUser=
377 ✓ SocketGroup=
378 ✓ SocketMode=
379 ✓ DirectoryMode=
380 ✓ Accept=
381 ✓ Writable=
382 ✓ MaxConnections=
383 ✓ MaxConnectionsPerSource=
384 ✓ KeepAlive=
385 ✓ KeepAliveTimeSec=
386 ✓ KeepAliveIntervalSec=
387 ✓ KeepAliveProbes=
388 ✓ DeferAcceptSec=
389 ✓ NoDelay=
390 ✓ Priority=
391 ✓ ReceiveBuffer=
392 ✓ SendBuffer=
393 ✓ IPTOS=
394 ✓ IPTTL=
395 ✓ Mark=
396 ✓ PipeSize=
397 ✓ FreeBind=
398 ✓ Transparent=
399 ✓ Broadcast=
400 ✓ PassCredentials=
401 ✓ PassSecurity=
402 ✓ TCPCongestion=
403 ✓ ReusePort=
404 ✓ MessageQueueMaxMessages=
405 ✓ MessageQueueMessageSize=
406 ✓ RemoveOnStop=
407 ✓ Symlinks=
408 ✓ FileDescriptorName=
409 Service=
410 ✓ TriggerLimitIntervalSec=
411 ✓ TriggerLimitBurst=
412 ✓ SmackLabel=
413 ✓ SmackLabelIPIn=
414 ✓ SmackLabelIPOut=
415 ✓ SELinuxContextFromNet=
416 ```
417
418 ## Swap Unit Settings
419
420 Swap units are currently not available at all as transient units:
421
422 ```
423 What=
424 Priority=
425 Options=
426 TimeoutSec=
427 ```
428
429 ## Path Unit Settings
430
431 Most path unit settings are available to transient units.
432
433 ```
434 ✓ PathExists=
435 ✓ PathExistsGlob=
436 ✓ PathChanged=
437 ✓ PathModified=
438 ✓ DirectoryNotEmpty=
439 Unit=
440 ✓ MakeDirectory=
441 ✓ DirectoryMode=
442 ```
443
444 ## Install Section
445
446 The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
447
448 ```
449 Alias=
450 WantedBy=
451 RequiredBy=
452 Also=
453 DefaultInstance=
454 ```