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