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