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 unit types (socket, swap, path) are not supported at all via unit types, but most others are pretty well supported, with some notable omissions.
The lists below contain all settings currently available in unit files. The ones currently available in transient units are prefixed with ✓
.
Only the most important generic unit settings are available for transient units.
✓ Description= Documentation= SourcePath= ✓ Requires= ✓ Requisite= ✓ Wants= ✓ BindsTo= ✓ Conflicts= ✓ Before= ✓ After= ✓ OnFailure= ✓ PropagatesReloadTo= ✓ ReloadPropagatedFrom= ✓ PartOf= JoinsNamespaceOf= RequiresMountsFor= StopWhenUnneeded= RefuseManualStart= RefuseManualStop= AllowIsolate= ✓ DefaultDependencies= OnFailureJobMode= OnFailureIsolate= IgnoreOnIsolate= JobTimeoutSec= JobRunningTimeoutSec= JobTimeoutAction= JobTimeoutRebootArgument= StartLimitIntervalSec=SECONDS StartLimitBurst=UNSIGNED StartLimitAction=ACTION ✓ FailureAction= ✓ SuccessAction= ✓ AddRef= RebootArgument=STRING ConditionPathExists= ConditionPathExistsGlob= ConditionPathIsDirectory= ConditionPathIsSymbolicLink= ConditionPathIsMountPoint= ConditionPathIsReadWrite= ConditionDirectoryNotEmpty= ConditionFileNotEmpty= ConditionFileIsExecutable= ConditionNeedsUpdate= ConditionFirstBoot= ConditionKernelCommandLine= ConditionArchitecture= ConditionVirtualization= ConditionSecurity= ConditionCapability= ConditionHost= ConditionACPower= ConditionUser= ConditionGroup= AssertPathExists= AssertPathExistsGlob= AssertPathIsDirectory= AssertPathIsSymbolicLink= AssertPathIsMountPoint= AssertPathIsReadWrite= AssertDirectoryNotEmpty= AssertFileNotEmpty= AssertFileIsExecutable= AssertNeedsUpdate= AssertFirstBoot= AssertKernelCommandLine= AssertArchitecture= AssertVirtualization= AssertSecurity= AssertCapability= AssertHost= AssertACPower= AssertUser= AssertGroup= ✓ CollectMode=
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= ✓ PrivateTmp= ✓ PrivateDevices= ✓ 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=
All cgroup/resource control settings are available for transient units
✓ CPUAccounting= ✓ CPUWeight= ✓ StartupCPUWeight= ✓ CPUShares= ✓ StartupCPUShares= ✓ CPUQuota= ✓ MemoryAccounting= ✓ 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=
All process killing settings are available for transient units:
✓ SendSIGKILL= ✓ SendSIGHUP= ✓ KillMode= ✓ KillSignal=
Only the most important service settings are available for transient units.
PIDFile= ✓ ExecStartPre= ✓ ExecStart= ✓ ExecStartPost= ✓ ExecReload= ✓ ExecStop= ✓ ExecStopPost= RestartSec= TimeoutStartSec= TimeoutStopSec= TimeoutSec= ✓ RuntimeMaxSec= WatchdogSec= ✓ Type= ✓ Restart= PermissionsStartOnly= RootDirectoryStartOnly= ✓ RemainAfterExit= GuessMainPID= RestartPreventExitStatus= RestartForceExitStatus= SuccessExitStatus= ✓ NonBlocking= BusName= ✓ FileDescriptorStoreMax= ✓ NotifyAccess= Sockets= USBFunctionDescriptors= USBFunctionStrings=
Only the most important mount unit settings are currently available to transient units:
✓ What= Where= ✓ Options= ✓ Type= TimeoutSec= DirectoryMode= SloppyOptions= LazyUnmount= ForceUnmount=
Only one automount unit setting is currently available to transient units:
Where= DirectoryMode= ✓ TimeoutIdleSec=
Most timer unit settings are available to transient units.
✓ OnCalendar= ✓ OnActiveSec= ✓ OnBootSec= ✓ OnStartupSec= ✓ OnUnitActiveSec= ✓ OnUnitInactiveSec= Persistent= ✓ WakeSystem= ✓ RemainAfterElapse= ✓ AccuracySec= ✓ RandomizedDelaySec= Unit=
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 units are fully supported as transient units (in fact they only exist as such), but they have no settings of their own beyond the generic unit and resource control settings.
Socket units are currently not available at all as transient units:
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= Service= TriggerLimitIntervalSec= TriggerLimitBurst= SmackLabel= SmackLabelIPIn= SmackLabelIPOut= SELinuxContextFromNet=
Swap units are currently not available at all as transient units:
What= Priority= Options= TimeoutSec=
Path units are currently not available at all as transient units:
PathExists= PathExistsGlob= PathChanged= PathModified= DirectoryNotEmpty= Unit= MakeDirectory= DirectoryMode=
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=