2017-11-23 22:26:02 +03:00
# What settings are currently available for transient units?
Our intention is to make all settings that are available as unit file settings
also available for transient units, through the D-Bus API. At the moment, some
2017-12-19 04:53:38 +03:00
unit types (device, swap, target) are not supported at all via unit types,
but most others are pretty well supported, with some notable omissions.
2017-11-23 22:26:02 +03:00
The lists below contain all settings currently available in unit files. The
ones currently available in transient units are prefixed with `✓` .
## Generic Unit Settings
2017-12-29 17:05:37 +03:00
Most generic unit settings are available for transient units.
2017-11-23 22:26:02 +03:00
```
✓ Description=
2017-12-29 17:05:37 +03:00
✓ Documentation=
✓ SourcePath=
2017-11-23 22:26:02 +03:00
✓ Requires=
✓ Requisite=
✓ Wants=
✓ BindsTo=
✓ Conflicts=
✓ Before=
✓ After=
✓ OnFailure=
✓ PropagatesReloadTo=
✓ ReloadPropagatedFrom=
✓ PartOf=
2017-12-29 17:05:37 +03:00
✓ JoinsNamespaceOf=
✓ RequiresMountsFor=
✓ StopWhenUnneeded=
✓ RefuseManualStart=
✓ RefuseManualStop=
✓ AllowIsolate=
2017-11-23 22:26:02 +03:00
✓ DefaultDependencies=
2017-12-29 17:05:37 +03:00
✓ OnFailureJobMode=
✓ IgnoreOnIsolate=
✓ JobTimeoutSec=
✓ JobRunningTimeoutSec=
✓ JobTimeoutAction=
✓ JobTimeoutRebootArgument=
✓ StartLimitIntervalSec=SECONDS
✓ StartLimitBurst=UNSIGNED
✓ StartLimitAction=ACTION
2017-11-23 22:26:02 +03:00
✓ FailureAction=
✓ SuccessAction=
✓ AddRef=
2017-12-29 17:05:37 +03:00
✓ RebootArgument=STRING
✓ ConditionPathExists=
✓ ConditionPathExistsGlob=
✓ ConditionPathIsDirectory=
✓ ConditionPathIsSymbolicLink=
✓ ConditionPathIsMountPoint=
✓ ConditionPathIsReadWrite=
✓ ConditionDirectoryNotEmpty=
✓ ConditionFileNotEmpty=
✓ ConditionFileIsExecutable=
✓ ConditionNeedsUpdate=
✓ ConditionFirstBoot=
✓ ConditionKernelCommandLine=
✓ ConditionKernelVersion=
✓ ConditionArchitecture=
✓ ConditionVirtualization=
✓ ConditionSecurity=
✓ ConditionCapability=
✓ ConditionHost=
✓ ConditionACPower=
✓ ConditionUser=
✓ ConditionGroup=
✓ ConditionControlGroupController=
✓ AssertPathExists=
✓ AssertPathExistsGlob=
✓ AssertPathIsDirectory=
✓ AssertPathIsSymbolicLink=
✓ AssertPathIsMountPoint=
✓ AssertPathIsReadWrite=
✓ AssertDirectoryNotEmpty=
✓ AssertFileNotEmpty=
✓ AssertFileIsExecutable=
✓ AssertNeedsUpdate=
✓ AssertFirstBoot=
✓ AssertKernelCommandLine=
✓ AssertKernelVersion=
✓ AssertArchitecture=
✓ AssertVirtualization=
✓ AssertSecurity=
✓ AssertCapability=
✓ AssertHost=
✓ AssertACPower=
✓ AssertUser=
✓ AssertGroup=
✓ AssertControlGroupController=
2017-11-23 22:26:02 +03:00
✓ CollectMode=
```
## Execution-Related Settings
All execution-related settings are available for transient units.
```
✓ WorkingDirectory=
✓ RootDirectory=
✓ RootImage=
✓ User=
✓ Group=
✓ SupplementaryGroups=
✓ Nice=
✓ OOMScoreAdjust=
✓ IOSchedulingClass=
✓ IOSchedulingPriority=
✓ CPUSchedulingPolicy=
✓ CPUSchedulingPriority=
✓ CPUSchedulingResetOnFork=
✓ CPUAffinity=
✓ UMask=
✓ Environment=
✓ EnvironmentFile=
✓ PassEnvironment=
✓ UnsetEnvironment=
✓ DynamicUser=
✓ RemoveIPC=
✓ StandardInput=
✓ StandardOutput=
✓ StandardError=
✓ StandardInputText=
✓ StandardInputData=
✓ TTYPath=
✓ TTYReset=
✓ TTYVHangup=
✓ TTYVTDisallocate=
✓ SyslogIdentifier=
✓ SyslogFacility=
✓ SyslogLevel=
✓ SyslogLevelPrefix=
✓ LogLevelMax=
✓ LogExtraFields=
✓ SecureBits=
✓ CapabilityBoundingSet=
✓ AmbientCapabilities=
✓ TimerSlackNSec=
✓ NoNewPrivileges=
✓ KeyringMode=
✓ SystemCallFilter=
✓ SystemCallArchitectures=
✓ SystemCallErrorNumber=
✓ MemoryDenyWriteExecute=
✓ RestrictNamespaces=
✓ RestrictRealtime=
✓ RestrictAddressFamilies=
✓ LockPersonality=
✓ LimitCPU=
✓ LimitFSIZE=
✓ LimitDATA=
✓ LimitSTACK=
✓ LimitCORE=
✓ LimitRSS=
✓ LimitNOFILE=
✓ LimitAS=
✓ LimitNPROC=
✓ LimitMEMLOCK=
✓ LimitLOCKS=
✓ LimitSIGPENDING=
✓ LimitMSGQUEUE=
✓ LimitNICE=
✓ LimitRTPRIO=
✓ LimitRTTIME=
✓ ReadWritePaths=
✓ ReadOnlyPaths=
✓ InaccessiblePaths=
✓ BindPaths=
✓ BindReadOnlyPaths=
2018-02-13 14:29:34 +03:00
✓ TemporaryFileSystem=
2017-11-23 22:26:02 +03:00
✓ PrivateTmp=
✓ PrivateDevices=
2018-07-12 09:40:17 +03:00
✓ PrivateMounts=
2017-11-23 22:26:02 +03:00
✓ ProtectKernelTunables=
✓ ProtectKernelModules=
✓ ProtectControlGroups=
✓ PrivateNetwork=
✓ PrivateUsers=
✓ ProtectSystem=
✓ ProtectHome=
✓ MountFlags=
✓ MountAPIVFS=
✓ Personality=
✓ RuntimeDirectoryPreserve=
✓ RuntimeDirectoryMode=
✓ RuntimeDirectory=
✓ StateDirectoryMode=
✓ StateDirectory=
✓ CacheDirectoryMode=
✓ CacheDirectory=
✓ LogsDirectoryMode=
✓ LogsDirectory=
✓ ConfigurationDirectoryMode=
✓ ConfigurationDirectory=
✓ PAMName=
✓ IgnoreSIGPIPE=
✓ UtmpIdentifier=
✓ UtmpMode=
✓ SELinuxContext=
✓ SmackProcessLabel=
✓ AppArmorProfile=
✓ Slice=
```
## Resource Control Settings
All cgroup/resource control settings are available for transient units
```
✓ CPUAccounting=
✓ CPUWeight=
✓ StartupCPUWeight=
✓ CPUShares=
✓ StartupCPUShares=
✓ CPUQuota=
✓ MemoryAccounting=
2018-06-09 03:33:14 +03:00
✓ MemoryMin=
2017-11-23 22:26:02 +03:00
✓ MemoryLow=
✓ MemoryHigh=
✓ MemoryMax=
✓ MemorySwapMax=
✓ MemoryLimit=
✓ DeviceAllow=
✓ DevicePolicy=
✓ IOAccounting=
✓ IOWeight=
✓ StartupIOWeight=
✓ IODeviceWeight=
✓ IOReadBandwidthMax=
✓ IOWriteBandwidthMax=
✓ IOReadIOPSMax=
✓ IOWriteIOPSMax=
✓ BlockIOAccounting=
✓ BlockIOWeight=
✓ StartupBlockIOWeight=
✓ BlockIODeviceWeight=
✓ BlockIOReadBandwidth=
✓ BlockIOWriteBandwidth=
✓ TasksAccounting=
✓ TasksMax=
✓ Delegate=
✓ IPAccounting=
✓ IPAddressAllow=
✓ IPAddressDeny=
```
## Process Killing Settings
All process killing settings are available for transient units:
```
✓ SendSIGKILL=
✓ SendSIGHUP=
✓ KillMode=
✓ KillSignal=
2018-07-20 18:22:43 +03:00
✓ FinalKillSignal=
2017-11-23 22:26:02 +03:00
```
## Service Unit Settings
2017-12-29 17:05:37 +03:00
Most service unit settings are available for transient units.
2017-11-23 22:26:02 +03:00
```
2017-12-29 17:05:37 +03:00
✓ PIDFile=
2017-11-23 22:26:02 +03:00
✓ ExecStartPre=
✓ ExecStart=
✓ ExecStartPost=
✓ ExecReload=
✓ ExecStop=
✓ ExecStopPost=
2017-12-29 17:05:37 +03:00
✓ RestartSec=
✓ TimeoutStartSec=
✓ TimeoutStopSec=
✓ TimeoutSec=
2017-11-23 22:26:02 +03:00
✓ RuntimeMaxSec=
2017-12-29 17:05:37 +03:00
✓ WatchdogSec=
2017-11-23 22:26:02 +03:00
✓ Type=
✓ Restart=
2017-12-29 17:05:37 +03:00
✓ PermissionsStartOnly=
✓ RootDirectoryStartOnly=
2017-11-23 22:26:02 +03:00
✓ RemainAfterExit=
2017-12-29 17:05:37 +03:00
✓ GuessMainPID=
✓ RestartPreventExitStatus=
✓ RestartForceExitStatus=
✓ SuccessExitStatus=
2017-11-23 22:26:02 +03:00
✓ NonBlocking=
2017-12-29 17:05:37 +03:00
✓ BusName=
2017-11-23 22:26:02 +03:00
✓ FileDescriptorStoreMax=
✓ NotifyAccess=
Sockets=
2017-12-29 17:05:37 +03:00
✓ USBFunctionDescriptors=
✓ USBFunctionStrings=
2017-11-23 22:26:02 +03:00
```
## Mount Unit Settings
2017-12-29 17:05:37 +03:00
All mount unit settings are available to transient units:
2017-11-23 22:26:02 +03:00
```
✓ What=
2017-12-29 17:05:37 +03:00
✓ Where=
2017-11-23 22:26:02 +03:00
✓ Options=
✓ Type=
2017-12-29 17:05:37 +03:00
✓ TimeoutSec=
✓ DirectoryMode=
✓ SloppyOptions=
✓ LazyUnmount=
✓ ForceUnmount=
2017-11-23 22:26:02 +03:00
```
## Automount Unit Settings
2017-12-29 17:05:37 +03:00
All automount unit setting is available to transient units:
2017-11-23 22:26:02 +03:00
```
2017-12-29 17:05:37 +03:00
✓ Where=
✓ DirectoryMode=
2017-11-23 22:26:02 +03:00
✓ TimeoutIdleSec=
```
## Timer Unit Settings
Most timer unit settings are available to transient units.
```
✓ OnCalendar=
✓ OnActiveSec=
✓ OnBootSec=
✓ OnStartupSec=
✓ OnUnitActiveSec=
✓ OnUnitInactiveSec=
2017-12-14 16:02:06 +03:00
✓ Persistent=
2017-11-23 22:26:02 +03:00
✓ WakeSystem=
✓ RemainAfterElapse=
✓ AccuracySec=
✓ RandomizedDelaySec=
Unit=
```
## Slice Unit Settings
Slice units are fully supported as transient units, but they have no settings
of their own beyond the generic unit and resource control settings.
## Scope Unit Settings
Scope units are fully supported as transient units (in fact they only exist as
2017-12-29 17:05:37 +03:00
such).
```
✓ TimeoutStopSec=
```
2017-11-23 22:26:02 +03:00
## Socket Unit Settings
2017-12-19 04:53:38 +03:00
Most socket unit settings are available to transient units.
2017-11-23 22:26:02 +03:00
```
2017-12-19 04:53:38 +03:00
✓ ListenStream=
✓ ListenDatagram=
✓ ListenSequentialPacket=
✓ ListenFIFO=
✓ ListenNetlink=
✓ ListenSpecial=
✓ ListenMessageQueue=
✓ ListenUSBFunction=
✓ SocketProtocol=
✓ BindIPv6Only=
✓ Backlog=
✓ BindToDevice=
✓ ExecStartPre=
✓ ExecStartPost=
✓ ExecStopPre=
✓ ExecStopPost=
✓ TimeoutSec=
✓ SocketUser=
✓ SocketGroup=
✓ SocketMode=
✓ DirectoryMode=
✓ Accept=
✓ Writable=
✓ MaxConnections=
✓ MaxConnectionsPerSource=
✓ KeepAlive=
✓ KeepAliveTimeSec=
✓ KeepAliveIntervalSec=
✓ KeepAliveProbes=
✓ DeferAcceptSec=
✓ NoDelay=
✓ Priority=
✓ ReceiveBuffer=
✓ SendBuffer=
✓ IPTOS=
✓ IPTTL=
✓ Mark=
✓ PipeSize=
✓ FreeBind=
✓ Transparent=
✓ Broadcast=
✓ PassCredentials=
✓ PassSecurity=
✓ TCPCongestion=
✓ ReusePort=
✓ MessageQueueMaxMessages=
✓ MessageQueueMessageSize=
✓ RemoveOnStop=
✓ Symlinks=
✓ FileDescriptorName=
2017-11-23 22:26:02 +03:00
Service=
2017-12-19 04:53:38 +03:00
✓ TriggerLimitIntervalSec=
✓ TriggerLimitBurst=
✓ SmackLabel=
✓ SmackLabelIPIn=
✓ SmackLabelIPOut=
✓ SELinuxContextFromNet=
2017-11-23 22:26:02 +03:00
```
## Swap Unit Settings
Swap units are currently not available at all as transient units:
```
What=
Priority=
Options=
TimeoutSec=
```
## Path Unit Settings
2017-12-14 16:02:06 +03:00
Most path unit settings are available to transient units.
2017-11-23 22:26:02 +03:00
```
2017-12-14 16:02:06 +03:00
✓ PathExists=
✓ PathExistsGlob=
✓ PathChanged=
✓ PathModified=
✓ DirectoryNotEmpty=
2017-11-23 22:26:02 +03:00
Unit=
2017-12-14 16:02:06 +03:00
✓ MakeDirectory=
✓ DirectoryMode=
2017-11-23 22:26:02 +03:00
```
## Install Section
The `[Install]` section is currently not available at all for transient units, and it probably doesn't even make sense.
```
Alias=
WantedBy=
RequiredBy=
Also=
DefaultInstance=
```