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