]> git.ipfire.org Git - thirdparty/systemd.git/blob - doc/TRANSIENT-SETTINGS.md
0df36967ac6c6f91a5e1709a80798fcc2f8f6c1b
[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 ✓ MemoryMin=
220 ✓ MemoryLow=
221 ✓ MemoryHigh=
222 ✓ MemoryMax=
223 ✓ MemorySwapMax=
224 ✓ MemoryLimit=
225 ✓ DeviceAllow=
226 ✓ DevicePolicy=
227 ✓ IOAccounting=
228 ✓ IOWeight=
229 ✓ StartupIOWeight=
230 ✓ IODeviceWeight=
231 ✓ IOReadBandwidthMax=
232 ✓ IOWriteBandwidthMax=
233 ✓ IOReadIOPSMax=
234 ✓ IOWriteIOPSMax=
235 ✓ BlockIOAccounting=
236 ✓ BlockIOWeight=
237 ✓ StartupBlockIOWeight=
238 ✓ BlockIODeviceWeight=
239 ✓ BlockIOReadBandwidth=
240 ✓ BlockIOWriteBandwidth=
241 ✓ TasksAccounting=
242 ✓ TasksMax=
243 ✓ Delegate=
244 ✓ IPAccounting=
245 ✓ IPAddressAllow=
246 ✓ IPAddressDeny=
247 ```
248
249 ## Process Killing Settings
250
251 All process killing settings are available for transient units:
252
253 ```
254 ✓ SendSIGKILL=
255 ✓ SendSIGHUP=
256 ✓ KillMode=
257 ✓ KillSignal=
258 ```
259
260 ## Service Unit Settings
261
262 Most service unit settings are available for transient units.
263
264 ```
265 ✓ PIDFile=
266 ✓ ExecStartPre=
267 ✓ ExecStart=
268 ✓ ExecStartPost=
269 ✓ ExecReload=
270 ✓ ExecStop=
271 ✓ ExecStopPost=
272 ✓ RestartSec=
273 ✓ TimeoutStartSec=
274 ✓ TimeoutStopSec=
275 ✓ TimeoutSec=
276 ✓ RuntimeMaxSec=
277 ✓ WatchdogSec=
278 ✓ Type=
279 ✓ Restart=
280 ✓ PermissionsStartOnly=
281 ✓ RootDirectoryStartOnly=
282 ✓ RemainAfterExit=
283 ✓ GuessMainPID=
284 ✓ RestartPreventExitStatus=
285 ✓ RestartForceExitStatus=
286 ✓ SuccessExitStatus=
287 ✓ NonBlocking=
288 ✓ BusName=
289 ✓ FileDescriptorStoreMax=
290 ✓ NotifyAccess=
291 Sockets=
292 ✓ USBFunctionDescriptors=
293 ✓ USBFunctionStrings=
294 ```
295
296 ## Mount Unit Settings
297
298 All mount unit settings are available to transient units:
299
300 ```
301 ✓ What=
302 ✓ Where=
303 ✓ Options=
304 ✓ Type=
305 ✓ TimeoutSec=
306 ✓ DirectoryMode=
307 ✓ SloppyOptions=
308 ✓ LazyUnmount=
309 ✓ ForceUnmount=
310 ```
311
312 ## Automount Unit Settings
313
314 All automount unit setting is available to transient units:
315
316 ```
317 ✓ Where=
318 ✓ DirectoryMode=
319 ✓ TimeoutIdleSec=
320 ```
321
322 ## Timer Unit Settings
323
324 Most timer unit settings are available to transient units.
325
326 ```
327 ✓ OnCalendar=
328 ✓ OnActiveSec=
329 ✓ OnBootSec=
330 ✓ OnStartupSec=
331 ✓ OnUnitActiveSec=
332 ✓ OnUnitInactiveSec=
333 ✓ Persistent=
334 ✓ WakeSystem=
335 ✓ RemainAfterElapse=
336 ✓ AccuracySec=
337 ✓ RandomizedDelaySec=
338 Unit=
339 ```
340
341 ## Slice Unit Settings
342
343 Slice units are fully supported as transient units, but they have no settings
344 of their own beyond the generic unit and resource control settings.
345
346 ## Scope Unit Settings
347
348 Scope units are fully supported as transient units (in fact they only exist as
349 such).
350
351 ```
352 ✓ TimeoutStopSec=
353 ```
354
355 ## Socket Unit Settings
356
357 Most socket unit settings are available to transient units.
358
359 ```
360 ✓ ListenStream=
361 ✓ ListenDatagram=
362 ✓ ListenSequentialPacket=
363 ✓ ListenFIFO=
364 ✓ ListenNetlink=
365 ✓ ListenSpecial=
366 ✓ ListenMessageQueue=
367 ✓ ListenUSBFunction=
368 ✓ SocketProtocol=
369 ✓ BindIPv6Only=
370 ✓ Backlog=
371 ✓ BindToDevice=
372 ✓ ExecStartPre=
373 ✓ ExecStartPost=
374 ✓ ExecStopPre=
375 ✓ ExecStopPost=
376 ✓ TimeoutSec=
377 ✓ SocketUser=
378 ✓ SocketGroup=
379 ✓ SocketMode=
380 ✓ DirectoryMode=
381 ✓ Accept=
382 ✓ Writable=
383 ✓ MaxConnections=
384 ✓ MaxConnectionsPerSource=
385 ✓ KeepAlive=
386 ✓ KeepAliveTimeSec=
387 ✓ KeepAliveIntervalSec=
388 ✓ KeepAliveProbes=
389 ✓ DeferAcceptSec=
390 ✓ NoDelay=
391 ✓ Priority=
392 ✓ ReceiveBuffer=
393 ✓ SendBuffer=
394 ✓ IPTOS=
395 ✓ IPTTL=
396 ✓ Mark=
397 ✓ PipeSize=
398 ✓ FreeBind=
399 ✓ Transparent=
400 ✓ Broadcast=
401 ✓ PassCredentials=
402 ✓ PassSecurity=
403 ✓ TCPCongestion=
404 ✓ ReusePort=
405 ✓ MessageQueueMaxMessages=
406 ✓ MessageQueueMessageSize=
407 ✓ RemoveOnStop=
408 ✓ Symlinks=
409 ✓ FileDescriptorName=
410 Service=
411 ✓ TriggerLimitIntervalSec=
412 ✓ TriggerLimitBurst=
413 ✓ SmackLabel=
414 ✓ SmackLabelIPIn=
415 ✓ SmackLabelIPOut=
416 ✓ SELinuxContextFromNet=
417 ```
418
419 ## Swap Unit Settings
420
421 Swap units are currently not available at all as transient units:
422
423 ```
424 What=
425 Priority=
426 Options=
427 TimeoutSec=
428 ```
429
430 ## Path Unit Settings
431
432 Most path unit settings are available to transient units.
433
434 ```
435 ✓ PathExists=
436 ✓ PathExistsGlob=
437 ✓ PathChanged=
438 ✓ PathModified=
439 ✓ DirectoryNotEmpty=
440 Unit=
441 ✓ MakeDirectory=
442 ✓ DirectoryMode=
443 ```
444
445 ## Install Section
446
447 The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
448
449 ```
450 Alias=
451 WantedBy=
452 RequiredBy=
453 Also=
454 DefaultInstance=
455 ```