]> git.ipfire.org Git - thirdparty/systemd.git/blob - TRANSIENT-SETTINGS.md
Merge pull request #7663 from keszybz/mkdir-return-value
[thirdparty/systemd.git] / 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 Only the most important 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 OnFailureIsolate=
39 IgnoreOnIsolate=
40 JobTimeoutSec=
41 JobRunningTimeoutSec=
42 JobTimeoutAction=
43 JobTimeoutRebootArgument=
44 StartLimitIntervalSec=SECONDS
45 StartLimitBurst=UNSIGNED
46 StartLimitAction=ACTION
47 ✓ FailureAction=
48 ✓ SuccessAction=
49 ✓ AddRef=
50 RebootArgument=STRING
51 ConditionPathExists=
52 ConditionPathExistsGlob=
53 ConditionPathIsDirectory=
54 ConditionPathIsSymbolicLink=
55 ConditionPathIsMountPoint=
56 ConditionPathIsReadWrite=
57 ConditionDirectoryNotEmpty=
58 ConditionFileNotEmpty=
59 ConditionFileIsExecutable=
60 ConditionNeedsUpdate=
61 ConditionFirstBoot=
62 ConditionKernelCommandLine=
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 AssertArchitecture=
85 AssertVirtualization=
86 AssertSecurity=
87 AssertCapability=
88 AssertHost=
89 AssertACPower=
90 AssertUser=
91 AssertGroup=
92 AssertControlGroupController=
93 ✓ CollectMode=
94 ```
95
96 ## Execution-Related Settings
97
98 All execution-related settings are available for transient units.
99
100 ```
101 ✓ WorkingDirectory=
102 ✓ RootDirectory=
103 ✓ RootImage=
104 ✓ User=
105 ✓ Group=
106 ✓ SupplementaryGroups=
107 ✓ Nice=
108 ✓ OOMScoreAdjust=
109 ✓ IOSchedulingClass=
110 ✓ IOSchedulingPriority=
111 ✓ CPUSchedulingPolicy=
112 ✓ CPUSchedulingPriority=
113 ✓ CPUSchedulingResetOnFork=
114 ✓ CPUAffinity=
115 ✓ UMask=
116 ✓ Environment=
117 ✓ EnvironmentFile=
118 ✓ PassEnvironment=
119 ✓ UnsetEnvironment=
120 ✓ DynamicUser=
121 ✓ RemoveIPC=
122 ✓ StandardInput=
123 ✓ StandardOutput=
124 ✓ StandardError=
125 ✓ StandardInputText=
126 ✓ StandardInputData=
127 ✓ TTYPath=
128 ✓ TTYReset=
129 ✓ TTYVHangup=
130 ✓ TTYVTDisallocate=
131 ✓ SyslogIdentifier=
132 ✓ SyslogFacility=
133 ✓ SyslogLevel=
134 ✓ SyslogLevelPrefix=
135 ✓ LogLevelMax=
136 ✓ LogExtraFields=
137 ✓ SecureBits=
138 ✓ CapabilityBoundingSet=
139 ✓ AmbientCapabilities=
140 ✓ TimerSlackNSec=
141 ✓ NoNewPrivileges=
142 ✓ KeyringMode=
143 ✓ SystemCallFilter=
144 ✓ SystemCallArchitectures=
145 ✓ SystemCallErrorNumber=
146 ✓ MemoryDenyWriteExecute=
147 ✓ RestrictNamespaces=
148 ✓ RestrictRealtime=
149 ✓ RestrictAddressFamilies=
150 ✓ LockPersonality=
151 ✓ LimitCPU=
152 ✓ LimitFSIZE=
153 ✓ LimitDATA=
154 ✓ LimitSTACK=
155 ✓ LimitCORE=
156 ✓ LimitRSS=
157 ✓ LimitNOFILE=
158 ✓ LimitAS=
159 ✓ LimitNPROC=
160 ✓ LimitMEMLOCK=
161 ✓ LimitLOCKS=
162 ✓ LimitSIGPENDING=
163 ✓ LimitMSGQUEUE=
164 ✓ LimitNICE=
165 ✓ LimitRTPRIO=
166 ✓ LimitRTTIME=
167 ✓ ReadWritePaths=
168 ✓ ReadOnlyPaths=
169 ✓ InaccessiblePaths=
170 ✓ BindPaths=
171 ✓ BindReadOnlyPaths=
172 ✓ PrivateTmp=
173 ✓ PrivateDevices=
174 ✓ ProtectKernelTunables=
175 ✓ ProtectKernelModules=
176 ✓ ProtectControlGroups=
177 ✓ PrivateNetwork=
178 ✓ PrivateUsers=
179 ✓ ProtectSystem=
180 ✓ ProtectHome=
181 ✓ MountFlags=
182 ✓ MountAPIVFS=
183 ✓ Personality=
184 ✓ RuntimeDirectoryPreserve=
185 ✓ RuntimeDirectoryMode=
186 ✓ RuntimeDirectory=
187 ✓ StateDirectoryMode=
188 ✓ StateDirectory=
189 ✓ CacheDirectoryMode=
190 ✓ CacheDirectory=
191 ✓ LogsDirectoryMode=
192 ✓ LogsDirectory=
193 ✓ ConfigurationDirectoryMode=
194 ✓ ConfigurationDirectory=
195 ✓ PAMName=
196 ✓ IgnoreSIGPIPE=
197 ✓ UtmpIdentifier=
198 ✓ UtmpMode=
199 ✓ SELinuxContext=
200 ✓ SmackProcessLabel=
201 ✓ AppArmorProfile=
202 ✓ Slice=
203 ```
204
205 ## Resource Control Settings
206
207 All cgroup/resource control settings are available for transient units
208
209 ```
210 ✓ CPUAccounting=
211 ✓ CPUWeight=
212 ✓ StartupCPUWeight=
213 ✓ CPUShares=
214 ✓ StartupCPUShares=
215 ✓ CPUQuota=
216 ✓ MemoryAccounting=
217 ✓ MemoryLow=
218 ✓ MemoryHigh=
219 ✓ MemoryMax=
220 ✓ MemorySwapMax=
221 ✓ MemoryLimit=
222 ✓ DeviceAllow=
223 ✓ DevicePolicy=
224 ✓ IOAccounting=
225 ✓ IOWeight=
226 ✓ StartupIOWeight=
227 ✓ IODeviceWeight=
228 ✓ IOReadBandwidthMax=
229 ✓ IOWriteBandwidthMax=
230 ✓ IOReadIOPSMax=
231 ✓ IOWriteIOPSMax=
232 ✓ BlockIOAccounting=
233 ✓ BlockIOWeight=
234 ✓ StartupBlockIOWeight=
235 ✓ BlockIODeviceWeight=
236 ✓ BlockIOReadBandwidth=
237 ✓ BlockIOWriteBandwidth=
238 ✓ TasksAccounting=
239 ✓ TasksMax=
240 ✓ Delegate=
241 ✓ IPAccounting=
242 ✓ IPAddressAllow=
243 ✓ IPAddressDeny=
244 ```
245
246 ## Process Killing Settings
247
248 All process killing settings are available for transient units:
249
250 ```
251 ✓ SendSIGKILL=
252 ✓ SendSIGHUP=
253 ✓ KillMode=
254 ✓ KillSignal=
255 ```
256
257 ## Service Unit Settings
258
259 Only the most important service settings are available for transient units.
260
261 ```
262 PIDFile=
263 ✓ ExecStartPre=
264 ✓ ExecStart=
265 ✓ ExecStartPost=
266 ✓ ExecReload=
267 ✓ ExecStop=
268 ✓ ExecStopPost=
269 RestartSec=
270 TimeoutStartSec=
271 TimeoutStopSec=
272 TimeoutSec=
273 ✓ RuntimeMaxSec=
274 WatchdogSec=
275 ✓ Type=
276 ✓ Restart=
277 PermissionsStartOnly=
278 RootDirectoryStartOnly=
279 ✓ RemainAfterExit=
280 GuessMainPID=
281 RestartPreventExitStatus=
282 RestartForceExitStatus=
283 SuccessExitStatus=
284 ✓ NonBlocking=
285 BusName=
286 ✓ FileDescriptorStoreMax=
287 ✓ NotifyAccess=
288 Sockets=
289 USBFunctionDescriptors=
290 USBFunctionStrings=
291 ```
292
293 ## Mount Unit Settings
294
295 Only the most important mount unit settings are currently available to transient units:
296
297 ```
298 ✓ What=
299 Where=
300 ✓ Options=
301 ✓ Type=
302 TimeoutSec=
303 DirectoryMode=
304 SloppyOptions=
305 LazyUnmount=
306 ForceUnmount=
307 ```
308
309 ## Automount Unit Settings
310
311 Only one automount unit setting is currently available to transient units:
312
313 ```
314 Where=
315 DirectoryMode=
316 ✓ TimeoutIdleSec=
317 ```
318
319 ## Timer Unit Settings
320
321 Most timer unit settings are available to transient units.
322
323 ```
324 ✓ OnCalendar=
325 ✓ OnActiveSec=
326 ✓ OnBootSec=
327 ✓ OnStartupSec=
328 ✓ OnUnitActiveSec=
329 ✓ OnUnitInactiveSec=
330 ✓ Persistent=
331 ✓ WakeSystem=
332 ✓ RemainAfterElapse=
333 ✓ AccuracySec=
334 ✓ RandomizedDelaySec=
335 Unit=
336 ```
337
338 ## Slice Unit Settings
339
340 Slice units are fully supported as transient units, but they have no settings
341 of their own beyond the generic unit and resource control settings.
342
343 ## Scope Unit Settings
344
345 Scope units are fully supported as transient units (in fact they only exist as
346 such), but they have no settings of their own beyond the generic unit,
347 resource control, and process killing settings.
348
349 ## Socket Unit Settings
350
351 Most socket unit settings are available to transient units.
352
353 ```
354 ✓ ListenStream=
355 ✓ ListenDatagram=
356 ✓ ListenSequentialPacket=
357 ✓ ListenFIFO=
358 ✓ ListenNetlink=
359 ✓ ListenSpecial=
360 ✓ ListenMessageQueue=
361 ✓ ListenUSBFunction=
362 ✓ SocketProtocol=
363 ✓ BindIPv6Only=
364 ✓ Backlog=
365 ✓ BindToDevice=
366 ✓ ExecStartPre=
367 ✓ ExecStartPost=
368 ✓ ExecStopPre=
369 ✓ ExecStopPost=
370 ✓ TimeoutSec=
371 ✓ SocketUser=
372 ✓ SocketGroup=
373 ✓ SocketMode=
374 ✓ DirectoryMode=
375 ✓ Accept=
376 ✓ Writable=
377 ✓ MaxConnections=
378 ✓ MaxConnectionsPerSource=
379 ✓ KeepAlive=
380 ✓ KeepAliveTimeSec=
381 ✓ KeepAliveIntervalSec=
382 ✓ KeepAliveProbes=
383 ✓ DeferAcceptSec=
384 ✓ NoDelay=
385 ✓ Priority=
386 ✓ ReceiveBuffer=
387 ✓ SendBuffer=
388 ✓ IPTOS=
389 ✓ IPTTL=
390 ✓ Mark=
391 ✓ PipeSize=
392 ✓ FreeBind=
393 ✓ Transparent=
394 ✓ Broadcast=
395 ✓ PassCredentials=
396 ✓ PassSecurity=
397 ✓ TCPCongestion=
398 ✓ ReusePort=
399 ✓ MessageQueueMaxMessages=
400 ✓ MessageQueueMessageSize=
401 ✓ RemoveOnStop=
402 ✓ Symlinks=
403 ✓ FileDescriptorName=
404 Service=
405 ✓ TriggerLimitIntervalSec=
406 ✓ TriggerLimitBurst=
407 ✓ SmackLabel=
408 ✓ SmackLabelIPIn=
409 ✓ SmackLabelIPOut=
410 ✓ SELinuxContextFromNet=
411 ```
412
413 ## Swap Unit Settings
414
415 Swap units are currently not available at all as transient units:
416
417 ```
418 What=
419 Priority=
420 Options=
421 TimeoutSec=
422 ```
423
424 ## Path Unit Settings
425
426 Most path unit settings are available to transient units.
427
428 ```
429 ✓ PathExists=
430 ✓ PathExistsGlob=
431 ✓ PathChanged=
432 ✓ PathModified=
433 ✓ DirectoryNotEmpty=
434 Unit=
435 ✓ MakeDirectory=
436 ✓ DirectoryMode=
437 ```
438
439 ## Install Section
440
441 The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
442
443 ```
444 Alias=
445 WantedBy=
446 RequiredBy=
447 Also=
448 DefaultInstance=
449 ```