]> git.ipfire.org Git - thirdparty/systemd.git/blame - docs/TRANSIENT-SETTINGS.md
Merge pull request #13600 from keszybz/ratelimit
[thirdparty/systemd.git] / docs / TRANSIENT-SETTINGS.md
CommitLineData
c3e270f4
FB
1---
2title: What settings are currently available for transient units?
3---
4
91d2f195
LP
5# What settings are currently available for transient units?
6
7Our intention is to make all settings that are available as unit file settings
8also available for transient units, through the D-Bus API. At the moment, some
8a211c8e
YW
9unit types (device, swap, target) are not supported at all via unit types,
10but most others are pretty well supported, with some notable omissions.
91d2f195
LP
11
12The lists below contain all settings currently available in unit files. The
13ones currently available in transient units are prefixed with `✓`.
14
15## Generic Unit Settings
16
c0d64e0e 17Most generic unit settings are available for transient units.
91d2f195
LP
18
19```
20✓ Description=
c0d64e0e
YW
21✓ Documentation=
22✓ SourcePath=
91d2f195
LP
23✓ Requires=
24✓ Requisite=
25✓ Wants=
26✓ BindsTo=
27✓ Conflicts=
28✓ Before=
29✓ After=
30✓ OnFailure=
31✓ PropagatesReloadTo=
32✓ ReloadPropagatedFrom=
33✓ PartOf=
c0d64e0e
YW
34✓ JoinsNamespaceOf=
35✓ RequiresMountsFor=
36✓ StopWhenUnneeded=
37✓ RefuseManualStart=
38✓ RefuseManualStop=
39✓ AllowIsolate=
91d2f195 40✓ DefaultDependencies=
c0d64e0e
YW
41✓ OnFailureJobMode=
42✓ IgnoreOnIsolate=
43✓ JobTimeoutSec=
44✓ JobRunningTimeoutSec=
45✓ JobTimeoutAction=
46✓ JobTimeoutRebootArgument=
47✓ StartLimitIntervalSec=SECONDS
48✓ StartLimitBurst=UNSIGNED
49✓ StartLimitAction=ACTION
91d2f195
LP
50✓ FailureAction=
51✓ SuccessAction=
7af67e9a
LP
52✓ FailureActionExitStatus=
53✓ SuccessActionExitStatus=
91d2f195 54✓ AddRef=
c0d64e0e
YW
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=
91d2f195
LP
100✓ CollectMode=
101```
102
103## Execution-Related Settings
104
105All 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=
90fc172e
AZ
144✓ LogRateLimitIntervalSec=
145✓ LogRateLimitBurst=
91d2f195
LP
146✓ SecureBits=
147✓ CapabilityBoundingSet=
148✓ AmbientCapabilities=
149✓ TimerSlackNSec=
150✓ NoNewPrivileges=
151✓ KeyringMode=
152✓ SystemCallFilter=
153✓ SystemCallArchitectures=
154✓ SystemCallErrorNumber=
155✓ MemoryDenyWriteExecute=
156✓ RestrictNamespaces=
157✓ RestrictRealtime=
7445db6e 158✓ RestrictSUIDSGID=
91d2f195
LP
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=
24743efe 182✓ TemporaryFileSystem=
91d2f195
LP
183✓ PrivateTmp=
184✓ PrivateDevices=
31f06f56 185✓ PrivateMounts=
91d2f195
LP
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
219All cgroup/resource control settings are available for transient units
220
221```
222✓ CPUAccounting=
223✓ CPUWeight=
224✓ StartupCPUWeight=
225✓ CPUShares=
226✓ StartupCPUShares=
227✓ CPUQuota=
10f28641 228✓ CPUQuotaPeriodSec=
91d2f195 229✓ MemoryAccounting=
acdb4b52 230✓ DefaultMemoryMin=
48422635 231✓ MemoryMin=
c52db42b 232✓ DefaultMemoryLow=
91d2f195
LP
233✓ MemoryLow=
234✓ MemoryHigh=
235✓ MemoryMax=
236✓ MemorySwapMax=
237✓ MemoryLimit=
238✓ DeviceAllow=
239✓ DevicePolicy=
240✓ IOAccounting=
241✓ IOWeight=
242✓ StartupIOWeight=
243✓ IODeviceWeight=
244✓ IOReadBandwidthMax=
245✓ IOWriteBandwidthMax=
246✓ IOReadIOPSMax=
247✓ IOWriteIOPSMax=
248✓ BlockIOAccounting=
249✓ BlockIOWeight=
250✓ StartupBlockIOWeight=
251✓ BlockIODeviceWeight=
252✓ BlockIOReadBandwidth=
253✓ BlockIOWriteBandwidth=
254✓ TasksAccounting=
255✓ TasksMax=
256✓ Delegate=
25cc30c4 257✓ DisableControllers=
91d2f195
LP
258✓ IPAccounting=
259✓ IPAddressAllow=
260✓ IPAddressDeny=
261```
262
263## Process Killing Settings
264
265All process killing settings are available for transient units:
266
267```
268✓ SendSIGKILL=
269✓ SendSIGHUP=
270✓ KillMode=
271✓ KillSignal=
fbb48d4c 272✓ FinalKillSignal=
c87700a1 273✓ WatchdogSignal=
91d2f195
LP
274```
275
276## Service Unit Settings
277
c0d64e0e 278Most service unit settings are available for transient units.
91d2f195
LP
279
280```
c0d64e0e 281✓ PIDFile=
31cd5f63 282✓ ExecCondition=
91d2f195
LP
283✓ ExecStartPre=
284✓ ExecStart=
285✓ ExecStartPost=
286✓ ExecReload=
287✓ ExecStop=
288✓ ExecStopPost=
c0d64e0e
YW
289✓ RestartSec=
290✓ TimeoutStartSec=
291✓ TimeoutStopSec=
dc653bf4 292✓ TimeoutAbortSec=
c0d64e0e 293✓ TimeoutSec=
91d2f195 294✓ RuntimeMaxSec=
c0d64e0e 295✓ WatchdogSec=
91d2f195
LP
296✓ Type=
297✓ Restart=
c0d64e0e 298✓ RootDirectoryStartOnly=
91d2f195 299✓ RemainAfterExit=
c0d64e0e
YW
300✓ GuessMainPID=
301✓ RestartPreventExitStatus=
302✓ RestartForceExitStatus=
303✓ SuccessExitStatus=
91d2f195 304✓ NonBlocking=
c0d64e0e 305✓ BusName=
91d2f195
LP
306✓ FileDescriptorStoreMax=
307✓ NotifyAccess=
308 Sockets=
c0d64e0e
YW
309✓ USBFunctionDescriptors=
310✓ USBFunctionStrings=
91d2f195
LP
311```
312
313## Mount Unit Settings
314
c0d64e0e 315All mount unit settings are available to transient units:
91d2f195
LP
316
317```
318✓ What=
c0d64e0e 319✓ Where=
91d2f195
LP
320✓ Options=
321✓ Type=
c0d64e0e
YW
322✓ TimeoutSec=
323✓ DirectoryMode=
324✓ SloppyOptions=
325✓ LazyUnmount=
326✓ ForceUnmount=
91d2f195
LP
327```
328
329## Automount Unit Settings
330
c0d64e0e 331All automount unit setting is available to transient units:
91d2f195
LP
332
333```
c0d64e0e
YW
334✓ Where=
335✓ DirectoryMode=
91d2f195
LP
336✓ TimeoutIdleSec=
337```
338
339## Timer Unit Settings
340
341Most timer unit settings are available to transient units.
342
343```
91d2f195
LP
344✓ OnActiveSec=
345✓ OnBootSec=
efebb613
LP
346✓ OnCalendar=
347✓ OnClockChange=
91d2f195 348✓ OnStartupSec=
efebb613 349✓ OnTimezoneChange
91d2f195
LP
350✓ OnUnitActiveSec=
351✓ OnUnitInactiveSec=
d852bda1 352✓ Persistent=
91d2f195
LP
353✓ WakeSystem=
354✓ RemainAfterElapse=
355✓ AccuracySec=
356✓ RandomizedDelaySec=
357 Unit=
358```
359
360## Slice Unit Settings
361
362Slice units are fully supported as transient units, but they have no settings
363of their own beyond the generic unit and resource control settings.
364
365## Scope Unit Settings
366
367Scope units are fully supported as transient units (in fact they only exist as
c0d64e0e
YW
368such).
369
370```
371✓ TimeoutStopSec=
372```
91d2f195
LP
373
374## Socket Unit Settings
375
8a211c8e 376Most socket unit settings are available to transient units.
91d2f195
LP
377
378```
8a211c8e
YW
379✓ ListenStream=
380✓ ListenDatagram=
381✓ ListenSequentialPacket=
382✓ ListenFIFO=
383✓ ListenNetlink=
384✓ ListenSpecial=
385✓ ListenMessageQueue=
386✓ ListenUSBFunction=
387✓ SocketProtocol=
388✓ BindIPv6Only=
389✓ Backlog=
390✓ BindToDevice=
391✓ ExecStartPre=
392✓ ExecStartPost=
393✓ ExecStopPre=
394✓ ExecStopPost=
395✓ TimeoutSec=
396✓ SocketUser=
397✓ SocketGroup=
398✓ SocketMode=
399✓ DirectoryMode=
400✓ Accept=
401✓ Writable=
402✓ MaxConnections=
403✓ MaxConnectionsPerSource=
404✓ KeepAlive=
405✓ KeepAliveTimeSec=
406✓ KeepAliveIntervalSec=
407✓ KeepAliveProbes=
408✓ DeferAcceptSec=
409✓ NoDelay=
410✓ Priority=
411✓ ReceiveBuffer=
412✓ SendBuffer=
413✓ IPTOS=
414✓ IPTTL=
415✓ Mark=
416✓ PipeSize=
417✓ FreeBind=
418✓ Transparent=
419✓ Broadcast=
420✓ PassCredentials=
421✓ PassSecurity=
422✓ TCPCongestion=
423✓ ReusePort=
424✓ MessageQueueMaxMessages=
425✓ MessageQueueMessageSize=
426✓ RemoveOnStop=
427✓ Symlinks=
428✓ FileDescriptorName=
91d2f195 429 Service=
8a211c8e
YW
430✓ TriggerLimitIntervalSec=
431✓ TriggerLimitBurst=
432✓ SmackLabel=
433✓ SmackLabelIPIn=
434✓ SmackLabelIPOut=
435✓ SELinuxContextFromNet=
91d2f195
LP
436```
437
438## Swap Unit Settings
439
440Swap units are currently not available at all as transient units:
441
442```
443 What=
444 Priority=
445 Options=
446 TimeoutSec=
447```
448
449## Path Unit Settings
450
d852bda1 451Most path unit settings are available to transient units.
91d2f195
LP
452
453```
d852bda1
YW
454✓ PathExists=
455✓ PathExistsGlob=
456✓ PathChanged=
457✓ PathModified=
458✓ DirectoryNotEmpty=
91d2f195 459 Unit=
d852bda1
YW
460✓ MakeDirectory=
461✓ DirectoryMode=
91d2f195
LP
462```
463
464## Install Section
465
466The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
467
468```
469 Alias=
470 WantedBy=
471 RequiredBy=
472 Also=
473 DefaultInstance=
474```