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