tizen: gcc14 fix: Fix pointer type mismatch
[platform/upstream/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,
9 device, swap, and target units are not supported at all as transient units, but
10 others are pretty well supported.
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=
48 ✓ StartLimitBurst=
49 ✓ StartLimitAction=
50 ✓ FailureAction=
51 ✓ SuccessAction=
52 ✓ FailureActionExitStatus=
53 ✓ SuccessActionExitStatus=
54 ✓ RebootArgument=
55 ✓ ConditionPathExists=
56 ✓ ConditionPathExistsGlob=
57 ✓ ConditionPathIsDirectory=
58 ✓ ConditionPathIsSymbolicLink=
59 ✓ ConditionPathIsMountPoint=
60 ✓ ConditionPathIsReadWrite=
61 ✓ ConditionDirectoryNotEmpty=
62 ✓ ConditionFileNotEmpty=
63 ✓ ConditionFileIsExecutable=
64 ✓ ConditionNeedsUpdate=
65 ✓ ConditionFirstBoot=
66 ✓ ConditionKernelCommandLine=
67 ✓ ConditionKernelVersion=
68 ✓ ConditionArchitecture=
69 ✓ ConditionVirtualization=
70 ✓ ConditionSecurity=
71 ✓ ConditionCapability=
72 ✓ ConditionHost=
73 ✓ ConditionACPower=
74 ✓ ConditionUser=
75 ✓ ConditionGroup=
76 ✓ ConditionControlGroupController=
77 ✓ AssertPathExists=
78 ✓ AssertPathExistsGlob=
79 ✓ AssertPathIsDirectory=
80 ✓ AssertPathIsSymbolicLink=
81 ✓ AssertPathIsMountPoint=
82 ✓ AssertPathIsReadWrite=
83 ✓ AssertDirectoryNotEmpty=
84 ✓ AssertFileNotEmpty=
85 ✓ AssertFileIsExecutable=
86 ✓ AssertNeedsUpdate=
87 ✓ AssertFirstBoot=
88 ✓ AssertKernelCommandLine=
89 ✓ AssertKernelVersion=
90 ✓ AssertArchitecture=
91 ✓ AssertVirtualization=
92 ✓ AssertSecurity=
93 ✓ AssertCapability=
94 ✓ AssertHost=
95 ✓ AssertACPower=
96 ✓ AssertUser=
97 ✓ AssertGroup=
98 ✓ AssertControlGroupController=
99 ✓ CollectMode=
100 ```
101
102 ## Execution-Related Settings
103
104 All execution-related settings are available for transient units.
105
106 ```
107 ✓ WorkingDirectory=
108 ✓ RootDirectory=
109 ✓ RootImage=
110 ✓ User=
111 ✓ Group=
112 ✓ SupplementaryGroups=
113 ✓ Nice=
114 ✓ OOMScoreAdjust=
115 ✓ IOSchedulingClass=
116 ✓ IOSchedulingPriority=
117 ✓ CPUSchedulingPolicy=
118 ✓ CPUSchedulingPriority=
119 ✓ CPUSchedulingResetOnFork=
120 ✓ CPUAffinity=
121 ✓ UMask=
122 ✓ Environment=
123 ✓ EnvironmentFile=
124 ✓ PassEnvironment=
125 ✓ UnsetEnvironment=
126 ✓ DynamicUser=
127 ✓ RemoveIPC=
128 ✓ StandardInput=
129 ✓ StandardOutput=
130 ✓ StandardError=
131 ✓ StandardInputText=
132 ✓ StandardInputData=
133 ✓ TTYPath=
134 ✓ TTYReset=
135 ✓ TTYVHangup=
136 ✓ TTYVTDisallocate=
137 ✓ SyslogIdentifier=
138 ✓ SyslogFacility=
139 ✓ SyslogLevel=
140 ✓ SyslogLevelPrefix=
141 ✓ LogLevelMax=
142 ✓ LogExtraFields=
143 ✓ LogRateLimitIntervalSec=
144 ✓ LogRateLimitBurst=
145 ✓ SecureBits=
146 ✓ CapabilityBoundingSet=
147 ✓ AmbientCapabilities=
148 ✓ TimerSlackNSec=
149 ✓ NoNewPrivileges=
150 ✓ KeyringMode=
151 ✓ SystemCallFilter=
152 ✓ SystemCallArchitectures=
153 ✓ SystemCallErrorNumber=
154 ✓ MemoryDenyWriteExecute=
155 ✓ RestrictNamespaces=
156 ✓ RestrictRealtime=
157 ✓ RestrictSUIDSGID=
158 ✓ RestrictAddressFamilies=
159 ✓ LockPersonality=
160 ✓ LimitCPU=
161 ✓ LimitFSIZE=
162 ✓ LimitDATA=
163 ✓ LimitSTACK=
164 ✓ LimitCORE=
165 ✓ LimitRSS=
166 ✓ LimitNOFILE=
167 ✓ LimitAS=
168 ✓ LimitNPROC=
169 ✓ LimitMEMLOCK=
170 ✓ LimitLOCKS=
171 ✓ LimitSIGPENDING=
172 ✓ LimitMSGQUEUE=
173 ✓ LimitNICE=
174 ✓ LimitRTPRIO=
175 ✓ LimitRTTIME=
176 ✓ ReadWritePaths=
177 ✓ ReadOnlyPaths=
178 ✓ InaccessiblePaths=
179 ✓ BindPaths=
180 ✓ BindReadOnlyPaths=
181 ✓ TemporaryFileSystem=
182 ✓ PrivateTmp=
183 ✓ PrivateDevices=
184 ✓ PrivateMounts=
185 ✓ ProtectKernelTunables=
186 ✓ ProtectKernelModules=
187 ✓ ProtectKernelLogs=
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 ✓ AllowedCPUs=
230 ✓ AllowedMemoryNodes=
231 ✓ MemoryAccounting=
232 ✓ DefaultMemoryMin=
233 ✓ MemoryMin=
234 ✓ DefaultMemoryLow=
235 ✓ MemoryLow=
236 ✓ MemoryHigh=
237 ✓ MemoryMax=
238 ✓ MemorySwapMax=
239 ✓ MemoryLimit=
240 ✓ DeviceAllow=
241 ✓ DevicePolicy=
242 ✓ IOAccounting=
243 ✓ IOWeight=
244 ✓ StartupIOWeight=
245 ✓ IODeviceWeight=
246 ✓ IOReadBandwidthMax=
247 ✓ IOWriteBandwidthMax=
248 ✓ IOReadIOPSMax=
249 ✓ IOWriteIOPSMax=
250 ✓ BlockIOAccounting=
251 ✓ BlockIOWeight=
252 ✓ StartupBlockIOWeight=
253 ✓ BlockIODeviceWeight=
254 ✓ BlockIOReadBandwidth=
255 ✓ BlockIOWriteBandwidth=
256 ✓ TasksAccounting=
257 ✓ TasksMax=
258 ✓ Delegate=
259 ✓ DisableControllers=
260 ✓ IPAccounting=
261 ✓ IPAddressAllow=
262 ✓ IPAddressDeny=
263 ```
264
265 ## Process Killing Settings
266
267 All process killing settings are available for transient units:
268
269 ```
270 ✓ SendSIGKILL=
271 ✓ SendSIGHUP=
272 ✓ KillMode=
273 ✓ KillSignal=
274 ✓ RestartKillSignal=
275 ✓ FinalKillSignal=
276 ✓ WatchdogSignal=
277 ```
278
279 ## Service Unit Settings
280
281 Most service unit settings are available for transient units.
282
283 ```
284 ✓ PIDFile=
285 ✓ ExecCondition=
286 ✓ ExecStartPre=
287 ✓ ExecStart=
288 ✓ ExecStartPost=
289 ✓ ExecReload=
290 ✓ ExecStop=
291 ✓ ExecStopPost=
292 ✓ RestartSec=
293 ✓ TimeoutStartSec=
294 ✓ TimeoutStopSec=
295 ✓ TimeoutAbortSec=
296 ✓ TimeoutSec=
297 ✓ RuntimeMaxSec=
298 ✓ WatchdogSec=
299 ✓ Type=
300 ✓ Restart=
301 ✓ RootDirectoryStartOnly=
302 ✓ RemainAfterExit=
303 ✓ GuessMainPID=
304 ✓ RestartPreventExitStatus=
305 ✓ RestartForceExitStatus=
306 ✓ SuccessExitStatus=
307 ✓ NonBlocking=
308 ✓ BusName=
309 ✓ FileDescriptorStoreMax=
310 ✓ NotifyAccess=
311   Sockets=
312 ✓ USBFunctionDescriptors=
313 ✓ USBFunctionStrings=
314 ✓ OOMPolicy=
315 ```
316
317 ## Mount Unit Settings
318
319 All mount unit settings are available to transient units:
320
321 ```
322 ✓ What=
323 ✓ Where=
324 ✓ Options=
325 ✓ Type=
326 ✓ TimeoutSec=
327 ✓ DirectoryMode=
328 ✓ SloppyOptions=
329 ✓ LazyUnmount=
330 ✓ ForceUnmount=
331 ```
332
333 ## Automount Unit Settings
334
335 All automount unit setting is available to transient units:
336
337 ```
338 ✓ Where=
339 ✓ DirectoryMode=
340 ✓ TimeoutIdleSec=
341 ```
342
343 ## Timer Unit Settings
344
345 Most timer unit settings are available to transient units.
346
347 ```
348 ✓ OnActiveSec=
349 ✓ OnBootSec=
350 ✓ OnCalendar=
351 ✓ OnClockChange=
352 ✓ OnStartupSec=
353 ✓ OnTimezoneChange=
354 ✓ OnUnitActiveSec=
355 ✓ OnUnitInactiveSec=
356 ✓ Persistent=
357 ✓ WakeSystem=
358 ✓ RemainAfterElapse=
359 ✓ AccuracySec=
360 ✓ RandomizedDelaySec=
361   Unit=
362 ```
363
364 ## Slice Unit Settings
365
366 Slice units are fully supported as transient units, but they have no settings
367 of their own beyond the generic unit and resource control settings.
368
369 ## Scope Unit Settings
370
371 Scope units are fully supported as transient units (in fact they only exist as
372 such).
373
374 ```
375 ✓ RuntimeMaxSec=
376 ✓ TimeoutStopSec=
377 ```
378
379 ## Socket Unit Settings
380
381 Most socket unit settings are available to transient units.
382
383 ```
384 ✓ ListenStream=
385 ✓ ListenDatagram=
386 ✓ ListenSequentialPacket=
387 ✓ ListenFIFO=
388 ✓ ListenNetlink=
389 ✓ ListenSpecial=
390 ✓ ListenMessageQueue=
391 ✓ ListenUSBFunction=
392 ✓ SocketProtocol=
393 ✓ BindIPv6Only=
394 ✓ Backlog=
395 ✓ BindToDevice=
396 ✓ ExecStartPre=
397 ✓ ExecStartPost=
398 ✓ ExecStopPre=
399 ✓ ExecStopPost=
400 ✓ TimeoutSec=
401 ✓ SocketUser=
402 ✓ SocketGroup=
403 ✓ SocketMode=
404 ✓ DirectoryMode=
405 ✓ Accept=
406 ✓ Writable=
407 ✓ MaxConnections=
408 ✓ MaxConnectionsPerSource=
409 ✓ KeepAlive=
410 ✓ KeepAliveTimeSec=
411 ✓ KeepAliveIntervalSec=
412 ✓ KeepAliveProbes=
413 ✓ DeferAcceptSec=
414 ✓ NoDelay=
415 ✓ Priority=
416 ✓ ReceiveBuffer=
417 ✓ SendBuffer=
418 ✓ IPTOS=
419 ✓ IPTTL=
420 ✓ Mark=
421 ✓ PipeSize=
422 ✓ FreeBind=
423 ✓ Transparent=
424 ✓ Broadcast=
425 ✓ PassCredentials=
426 ✓ PassSecurity=
427 ✓ TCPCongestion=
428 ✓ ReusePort=
429 ✓ MessageQueueMaxMessages=
430 ✓ MessageQueueMessageSize=
431 ✓ RemoveOnStop=
432 ✓ Symlinks=
433 ✓ FileDescriptorName=
434   Service=
435 ✓ TriggerLimitIntervalSec=
436 ✓ TriggerLimitBurst=
437 ✓ SmackLabel=
438 ✓ SmackLabelIPIn=
439 ✓ SmackLabelIPOut=
440 ✓ SELinuxContextFromNet=
441 ```
442
443 ## Swap Unit Settings
444
445 Swap units are currently not available at all as transient units:
446
447 ```
448   What=
449   Priority=
450   Options=
451   TimeoutSec=
452 ```
453
454 ## Path Unit Settings
455
456 Most path unit settings are available to transient units.
457
458 ```
459 ✓ PathExists=
460 ✓ PathExistsGlob=
461 ✓ PathChanged=
462 ✓ PathModified=
463 ✓ DirectoryNotEmpty=
464   Unit=
465 ✓ MakeDirectory=
466 ✓ DirectoryMode=
467 ```
468
469 ## Install Section
470
471 The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
472
473 ```
474   Alias=
475   WantedBy=
476   RequiredBy=
477   Also=
478   DefaultInstance=
479 ```