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