summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2017-11-23 20:26:02 +0100
committerLennart Poettering <lennart@poettering.net>2017-11-29 12:34:12 +0100
commit91d2f19594d5b0aa5cf011a3dba6dd706696764b (patch)
treed9d66c1b6f9ee18cd69420ebbb569197db2e212e
parentf6c66be1dc0396f406deb76b35a8c1bfacbbc965 (diff)
downloadsystemd-91d2f19594d5b0aa5cf011a3dba6dd706696764b.tar.gz
documentation: add document listing all unit file settings also supported for transient units
Unfortunately, there are far too many properties currently not accessible to transient units. The first step to opening them all up is to figure out which ones they are.
-rw-r--r--TRANSIENT-SETTINGS.md447
1 files changed, 447 insertions, 0 deletions
diff --git a/TRANSIENT-SETTINGS.md b/TRANSIENT-SETTINGS.md
new file mode 100644
index 0000000000..17fe0604ec
--- /dev/null
+++ b/TRANSIENT-SETTINGS.md
@@ -0,0 +1,447 @@
+# 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
+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 `✓`.
+
+## Generic Unit Settings
+
+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=
+```
+
+## 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=
+✓ 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=
+```
+
+## Resource Control Settings
+
+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=
+```
+
+## Process Killing Settings
+
+All process killing settings are available for transient units:
+
+```
+✓ SendSIGKILL=
+✓ SendSIGHUP=
+✓ KillMode=
+✓ KillSignal=
+```
+
+## Service Unit Settings
+
+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=
+```
+
+## Mount Unit Settings
+
+Only the most important mount unit settings are currently available to transient units:
+
+```
+✓ What=
+ Where=
+✓ Options=
+✓ Type=
+ TimeoutSec=
+ DirectoryMode=
+ SloppyOptions=
+ LazyUnmount=
+ ForceUnmount=
+```
+
+## Automount Unit Settings
+
+Only one automount unit setting is currently available to transient units:
+
+```
+ Where=
+ DirectoryMode=
+✓ TimeoutIdleSec=
+```
+
+## Timer Unit Settings
+
+Most timer unit settings are available to transient units.
+
+```
+✓ OnCalendar=
+✓ OnActiveSec=
+✓ OnBootSec=
+✓ OnStartupSec=
+✓ OnUnitActiveSec=
+✓ OnUnitInactiveSec=
+ Persistent=
+✓ 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
+such), but they have no settings of their own beyond the generic unit and
+resource control settings.
+
+## Socket Unit 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 Unit Settings
+
+Swap units are currently not available at all as transient units:
+
+```
+ What=
+ Priority=
+ Options=
+ TimeoutSec=
+```
+
+## Path Unit Settings
+
+Path units are currently not available at all as transient units:
+
+```
+ PathExists=
+ PathExistsGlob=
+ PathChanged=
+ PathModified=
+ DirectoryNotEmpty=
+ Unit=
+ MakeDirectory=
+ DirectoryMode=
+```
+
+## 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=
+```