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