Compare commits

...

16 Commits
v1.6 ... master

Author SHA1 Message Date
Mark Oteiza
8742607120 stop clobbering company-backends
* using add-hook to modify company-backends is bad juju
* there does not appear to be a sensible way for a mode to
  modify company-backends either in the variable docstring or the
  online documentation here

https://company-mode.github.io/manual/Backends.html

  so... we should not modify it.
* document the added effort to use the company backend
* the only additional fanciness to `systemd-company-backend' is that
  it will automatically insert an = after completing a directive, so
  it might be nice to work that into the capf completion somehow and
  trash the company-specific code
2023-01-31 22:02:07 -05:00
Mark Oteiza
964ec9d4e0 happy new year 2023-01-31 21:55:06 -05:00
Mark Oteiza
b6ae63a236 add specifiers (leave obsoleted ones in for now) 2021-02-09 15:52:26 -05:00
Mark Oteiza
0416fe454a drop some unneeded eval-when-compile 2021-02-09 15:52:05 -05:00
Mark Oteiza
20c9d97e24 happy new year 2021-02-09 15:51:44 -05:00
Mark Oteiza
ec8f6cfe9d happy new year 2020-01-30 13:29:39 -05:00
Mark Oteiza
51c148e09a update urls
drop mention of marmalade
2019-12-19 18:04:45 -05:00
Mark Oteiza
9265ef89ff update section lists
there are very many different specialized network sections now.  only
a subset of them have been added here
2019-12-19 18:03:47 -05:00
Mark Oteiza
077aedde23 systemd 244 directives
network stuff is getting split up across a bunch of different sections
which is annoying.  dnssec files are a thing now as well.  finding
a better way to do this would be nice
2019-12-19 18:01:39 -05:00
stardiviner
a9f82b1f8b add systemd-mode company backend buffer locally 2019-11-17 11:14:46 -05:00
Mark Oteiza
c6e06dfa93 happy new year 2019-01-01 04:23:36 -05:00
Lucas Werkmeister
401d71c2dd Add %E, %j, %J, %T, %V specifiers
These specifiers were added in systemd v239.
2018-06-29 17:06:22 -04:00
Lucas Werkmeister
21d50f27d8 Sort specifiers alphabetically
The systemd.unit(5) manpage sorts unit file specifiers alphabetically
since commit systemd/systemd@709f4c472c, and since the order in this
regular expression is even less relevant than in the manpage, let’s just
do the same to make it easy to compare the letter sets between the two.
2018-06-29 17:06:13 -04:00
Lucas Werkmeister
e97f78ee11 Add %S, %C, %L specifiers
These specifiers for the state, cache, and log directory root were added in systemd v236.
2018-04-14 14:11:36 -04:00
Mark Oteiza
228f0b99ca happy new year 2018-01-01 21:03:40 -05:00
Mark Oteiza
22f024fe8f systemd 235 2017-10-06 16:52:43 -04:00
6 changed files with 240 additions and 44 deletions

3
README
View File

@ -7,8 +7,7 @@ in `systemd.el`.
Installation Installation
------------ ------------
Available as the `systemd` package on MELPA <http://melpa.org/> and Available as the `systemd` package on MELPA <https://melpa.org/>.
marmalade <https://marmalade-repo.org/>.
In Emacs, one can locally install as a package with `make dist` and In Emacs, one can locally install as a package with `make dist` and

View File

@ -3,35 +3,55 @@ ARPAllTargets
ARPIPTargets ARPIPTargets
ARPIntervalSec ARPIntervalSec
ARPValidate ARPValidate
Activate
ActiveSlave ActiveSlave
AdActorSystem
AdActorSystemPriority
AdSelect AdSelect
AdUserPortKey
Address Address
AddressAutoconfiguration
Advertise
AgeingTimeSec AgeingTimeSec
Alias
AllMulticast
AllSlavesActive AllSlavesActive
AllowLocalRemote
AllowPortToBeRoot AllowPortToBeRoot
AllowedIPs
Anonymize
Architecture Architecture
AssignToLoopback
AssociatedWith
AutoJoin AutoJoin
AutoNegotiation AutoNegotiation
BSSID
BindCarrier BindCarrier
BitRate
BitsPerSecond BitsPerSecond
BlackList
Bond Bond
Bridge Bridge
Cache Broadcast
ClientIdentifier ClientIdentifier
CombinedChannels
ConfigureWithoutCarrier
CopyDSCP CopyDSCP
Cost Cost
CriticalConnection
DHCP DHCP
DHCPServer DHCPServer
DNS DNS
DNSDefaultRoute
DNSLifetimeSec
DNSOverTLS
DNSSEC DNSSEC
DNSSECNegativeTrustAnchors DNSSECNegativeTrustAnchors
DNSStubListener
DUIDRawData DUIDRawData
DUIDType DUIDType
DefaultLeaseTimeSec DefaultLeaseTimeSec
Description
DefaultPVID DefaultPVID
DefaultRouteOnDevice
Description
Destination Destination
DestinationPort DestinationPort
DiscoverPathMTU DiscoverPathMTU
@ -40,26 +60,44 @@ DownDelaySec
Driver Driver
Duplex Duplex
DuplicateAddressDetection DuplicateAddressDetection
DynamicTransmitLoadBalancing
ERSPANIndex
EgressUntagged EgressUntagged
EmitDNS EmitDNS
EmitDomains
EmitLLDP EmitLLDP
EmitNTP EmitNTP
EmitRouter EmitRouter
EmitSIP
EmitTimezone EmitTimezone
Encapsulation
EncapsulationLimit EncapsulationLimit
EncapsulationType
Encrypt
Endpoint
FDBAgeingSec FDBAgeingSec
FOUDestinationPort
FOUSourcePort
FailOverMACPolicy FailOverMACPolicy
FallbackDNS Family
FallbackNTP
FastLeave FastLeave
FastOpenNoCookie
FirewallMark
Flags
FlowLabel FlowLabel
FooOverUDP
ForceDHCPv6PDOtherInformation
ForwardDelaySec ForwardDelaySec
From
GVRP GVRP
Gateway Gateway
GatewayOnlink GatewayOnLink
GenericProtocolExtension
GenericReceiveOffload GenericReceiveOffload
GenericSegmentationOffload GenericSegmentationOffload
GratuitousARP GratuitousARP
Group
GroupForwardMask
GroupPolicyExtension GroupPolicyExtension
HairPin HairPin
HelloTimeSec HelloTimeSec
@ -67,23 +105,42 @@ HomeAddress
Host Host
Hostname Hostname
IAID IAID
IPDoNotFragment
IPForward IPForward
IPMasquerade IPMasquerade
IPProtocol
IPServiceType
IPVLAN
IPv4LLRoute IPv4LLRoute
IPv4ProxyARP IPv4ProxyARP
IPv6AcceptRA IPv6AcceptRA
IPv6DuplicateAddressDetection IPv6DuplicateAddressDetection
IPv6FlowLabel IPv6FlowLabel
IPv6HopLimit IPv6HopLimit
IPv6MTUBytes
IPv6Preference IPv6Preference
IPv6PrefixDelegation
IPv6PrivacyExtensions IPv6PrivacyExtensions
IPv6ProxyNDP IPv6ProxyNDP
IPv6ProxyNDPAddress IPv6ProxyNDPAddress
IPv6RapidDeploymentPrefix
IPv6Token IPv6Token
ISATAP
Id Id
IgnoreCarrierLoss
IncomingInterface
Independent
InitialAdvertisedReceiveWindow
InitialCongestionWindow
InputKey InputKey
InterfaceId
InvertRule
KeepConfiguration
KernelCommandLine KernelCommandLine
KernelVersion
Key Key
KeyFile
KeyId
Kind Kind
L2MissNotification L2MissNotification
L3MissNotification L3MissNotification
@ -92,7 +149,11 @@ LLDP
LLMNR LLMNR
Label Label
LargeReceiveOffload LargeReceiveOffload
Layer2SpecificHeader
LearnPacketIntervalSec LearnPacketIntervalSec
Learning
LifetimeSec
LinkLayerAddress
LinkLocalAddressing LinkLocalAddressing
ListenPort ListenPort
Local Local
@ -100,85 +161,156 @@ LooseBinding
MACAddress MACAddress
MACAddressPolicy MACAddressPolicy
MACVLAN MACVLAN
MACsec
MIIMonitorSec MIIMonitorSec
MTUBytes MTUBytes
MVRP MVRP
MacLearning MacLearning
ManageTemporaryAddress ManageTemporaryAddress
Managed
MaxAgeSec MaxAgeSec
MaxAttempts
MaxLeaseTimeSec MaxLeaseTimeSec
MaximumFDBEntries MaximumFDBEntries
Metric Metric
MinLinks MinLinks
Mode Mode
MultiQueue MultiQueue
Multicast
MulticastDNS MulticastDNS
MulticastFlood
MulticastIGMPVersion
MulticastQuerier MulticastQuerier
MulticastRouter
MulticastSnooping MulticastSnooping
MulticastToUnicast
NTP NTP
Name Name
NamePolicy NamePolicy
OneQueue NeighborSuppression
NetworkEmulatorDelayJitterSec
NetworkEmulatorDelaySec
NetworkEmulatorDuplicateRate
NetworkEmulatorLossRate
NetworkEmulatorPacketLimit
OnLink
OriginalName OriginalName
OtherChannels
OtherInformation
OutgoingInterface
OutputKey OutputKey
PVID PVID
PacketInfo PacketInfo
PacketNumber
PacketsPerSlave PacketsPerSlave
Parent
Path Path
Peer Peer
PeerPort
PeerSessionId
PeerTunnelId
PersistentKeepalive
PoolOffset PoolOffset
PoolSize PoolSize
Port Port
PortRange PortRange
PreferredLifetime PreferredLifetime
PreferredLifetimeSec
PreferredSource PreferredSource
Prefix Prefix
PrefixDelegationHint
PrefixRoute PrefixRoute
PresharedKey
PresharedKeyFile
PrimaryReselectPolicy PrimaryReselectPolicy
PrimarySlave PrimarySlave
Priority
PrivateKey
PrivateKeyFile
Property
Protocol Protocol
ProxyARP
ProxyARPWiFi
PublicKey
QuickAck
RapidCommit
ReduceARPProxy ReduceARPProxy
Remote Remote
RemoteChecksumRx RemoteChecksumRx
RemoteChecksumTx RemoteChecksumTx
ReorderHeader ReorderHeader
RequestBroadcast RequestBroadcast
RequestOptions
RequiredForOnline
ResendIGMP ResendIGMP
RestartSec
Route
RouteMetric RouteMetric
RouteShortCircuit RouteShortCircuit
RouteTable RouteTable
RouterLifetimeSec
RouterPreference
RoutesToDNS
RxBufferSize
RxChannels
SSID
STP STP
SamplePoint
Scope Scope
SendHostname SendHostname
SendOption
SendRelease
SerializeTunneledPackets
SessionId
Source Source
SourcePort
TCP6SegmentationOffload
TCPSegmentationOffload TCPSegmentationOffload
TOS TOS
TTL TTL
TTLPropagate
Table Table
Timezone Timezone
To
TransmitHashPolicy TransmitHashPolicy
TripleSampling
Tunnel Tunnel
TunnelId
TxBufferSize
TxChannels
Type
TypeOfService
UDP6ZeroChecksumRx UDP6ZeroChecksumRx
UDP6ZeroChecksumTx UDP6ZeroChecksumTx
UDPChecksum UDPChecksum
UDPSegmentationOffload UDPSourcePort
UnicastFlood UnicastFlood
Unmanaged Unmanaged
UpDelaySec UpDelaySec
UseAutonomousPrefix
UseBPDU UseBPDU
UseDNS UseDNS
UseDomains UseDomains
UseForEncoding
UseHostname UseHostname
UseMTU UseMTU
UseNTP UseNTP
UseOnLinkPrefix
UseRoutes UseRoutes
UseSIP
UseTimezone UseTimezone
User
UserClass
VLAN VLAN
VLANFiltering VLANFiltering
VLANId VLANId
VNI
VNetHeader VNetHeader
VRF VRF
VXLAN VXLAN
ValidLifetimeSec
VendorClassIdentifier VendorClassIdentifier
Virtualization Virtualization
WLANInterfaceType
WakeOnLan WakeOnLan
Xfrm

View File

@ -1,4 +1,5 @@
Boot Boot
Ephemeral
ProcessTwo ProcessTwo
Parameters Parameters
Environment Environment
@ -6,15 +7,25 @@ User
WorkingDirectory WorkingDirectory
PivotRoot PivotRoot
Capability Capability
NoNewPrivileges
KillSignal KillSignal
Personality Personality
MachineID MachineID
PrivateUsers PrivateUsers
NotifyReady NotifyReady
SystemCallFilter
LimitCPU
OOMScoreAdjust
CPUAffinity
Hostname
ResolvConf
Timezone
LinkJournal
ReadOnly ReadOnly
Volatile Volatile
Bind Bind
TemporaryFileSystem TemporaryFileSystem
Inaccessible
Overlay Overlay
PrivateUsersChown PrivateUsersChown
Private Private

View File

@ -1,9 +1,9 @@
;;; systemd.el --- Major mode for editing systemd units -*- lexical-binding: t -*- ;;; systemd.el --- Major mode for editing systemd units -*- lexical-binding: t -*-
;; Copyright (C) 2014-2017 Mark Oteiza <mvoteiza@udel.edu> ;; Copyright (C) 2014-2023 Mark Oteiza <mvoteiza@udel.edu>
;; Author: Mark Oteiza <mvoteiza@udel.edu> ;; Author: Mark Oteiza <mvoteiza@udel.edu>
;; Version: 1.6 ;; Version: 1.6.1
;; Package-Requires: ((emacs "24.4")) ;; Package-Requires: ((emacs "24.4"))
;; Keywords: tools, unix ;; Keywords: tools, unix
@ -33,7 +33,8 @@
;; network configuration. Both a completer for ;; network configuration. Both a completer for
;; `completion-at-point-functions' and a company backend are provided. ;; `completion-at-point-functions' and a company backend are provided.
;; The latter can be enabled by adding `company-mode' to ;; The latter can be enabled by adding `company-mode' to
;; `systemd-mode-hook'. ;; `systemd-mode-hook' and adding `systemd-company-backend' to
;; `company-backends'.
;;; Code: ;;; Code:
@ -49,7 +50,7 @@
(defgroup systemd () (defgroup systemd ()
"Major mode for editing systemd units." "Major mode for editing systemd units."
:link '(url-link "http://www.freedesktop.org/wiki/Software/systemd/") :link '(url-link "https://www.freedesktop.org/wiki/Software/systemd/")
:group 'tools) :group 'tools)
(defcustom systemd-browse-url-function 'browse-url (defcustom systemd-browse-url-function 'browse-url
@ -81,7 +82,7 @@
(defconst systemd-unit-sections (defconst systemd-unit-sections
'("Unit" "Install" "Service") '("Unit" "Install" "Service")
"Configuration sections for systemd 225.") "Configuration sections for systemd 244.")
(defconst systemd-unit-directives (defconst systemd-unit-directives
(eval-when-compile (eval-when-compile
@ -94,10 +95,13 @@
"Configuration directives for systemd.") "Configuration directives for systemd.")
(defconst systemd-network-sections (defconst systemd-network-sections
'("Match" "Link" "NetDev" "VLAN" "MACVLAN" "MACVTAP" "IPVLAN" "VXLAN" '("Match" "Link" "NetDev" "VLAN" "MACVLAN" "MACVTAP" "IPVLAN" "IPVTAP" "VXLAN"
"GENEVE" "L2TP" "L2TPsession" "MACsec" "FooOverUDP"
"Tunnel" "Peer" "Tun" "Tap" "Bond" "Network" "Address" "Route" "DHCP" "Tunnel" "Peer" "Tun" "Tap" "Bond" "Network" "Address" "Route" "DHCP"
"Bridge" "BridgeFDB") "Neighbor" "IPv6AddressLabel" "RoutingPolicyRule" "NextHop" "DHCPv4"
"Network configuration sections for systemd 225.") "DHCPv6" "IPv6AcceptRA" "DHCPServer" "IPv6Prefix" "CAN"
"Bridge" "BridgeFDB" "BridgeVLAN" "VXCAN" "WireGuard" "WireGuardPeer")
"Network configuration sections for systemd 244 (not exhaustive).")
(defconst systemd-network-directives (defconst systemd-network-directives
(eval-when-compile (eval-when-compile
@ -111,7 +115,7 @@
(defconst systemd-nspawn-sections (defconst systemd-nspawn-sections
'("Exec" "Files" "Network") '("Exec" "Files" "Network")
"Namespace container configuration sections for systemd 232.") "Namespace container configuration sections for systemd 244.")
(defconst systemd-nspawn-directives (defconst systemd-nspawn-directives
(eval-when-compile (eval-when-compile
@ -125,28 +129,25 @@
;;;###autoload ;;;###autoload
(defconst systemd-autoload-regexp (defconst systemd-autoload-regexp
(eval-when-compile (rx (+? (any "a-zA-Z0-9-_.@\\")) "."
(rx (+? (any "a-zA-Z0-9-_.@\\")) "." (or "automount" "busname" "mount" "service" "slice"
(or "automount" "busname" "mount" "service" "slice" "socket" "swap" "target" "timer" "link" "netdev" "network")
"socket" "swap" "target" "timer" "link" "netdev" "network") string-end)
string-end))
"Regexp for file buffers in which to autoload `systemd-mode'.") "Regexp for file buffers in which to autoload `systemd-mode'.")
;;;###autoload ;;;###autoload
(defconst systemd-tempfn-autoload-regexp (defconst systemd-tempfn-autoload-regexp
(eval-when-compile (rx ".#"
(rx ".#" (or (and (+? (any "a-zA-Z0-9-_.@\\")) "."
(or (and (+? (any "a-zA-Z0-9-_.@\\")) "." (or "automount" "busname" "mount" "service" "slice"
(or "automount" "busname" "mount" "service" "slice" "socket" "swap" "target" "timer" "link" "netdev" "network"))
"socket" "swap" "target" "timer" "link" "netdev" "network")) "override.conf")
"override.conf") (= 16 (char hex-digit)) string-end)
(= 16 (char hex-digit)) string-end))
"Regexp for temp file buffers in which to autoload `systemd-mode'.") "Regexp for temp file buffers in which to autoload `systemd-mode'.")
;;;###autoload ;;;###autoload
(defconst systemd-dropin-autoload-regexp (defconst systemd-dropin-autoload-regexp
(eval-when-compile (rx "/systemd/" (+? anything) ".d/" (+? (not (any ?/))) ".conf" string-end)
(rx "/systemd/" (+? anything) ".d/" (+? (not (any ?/))) ".conf" string-end))
"Regexp for dropin config file buffers in which to autoload `systemd-mode'.") "Regexp for dropin config file buffers in which to autoload `systemd-mode'.")
(defun systemd-get-value (start) (defun systemd-get-value (start)
@ -211,13 +212,12 @@ file, defaulting to the link under point, if any."
(defun systemd-file-network-p (filename) (defun systemd-file-network-p (filename)
"Return non-nil if FILENAME has a network-type extension, otherwise nil." "Return non-nil if FILENAME has a network-type extension, otherwise nil."
(string-match-p (eval-when-compile (string-match-p (rx "." (or "link" "netdev" "network") string-end)
(rx "." (or "link" "netdev" "network") string-end))
filename)) filename))
(defun systemd-file-nspawn-p (filename) (defun systemd-file-nspawn-p (filename)
"Return non-nil if FILENAME has an nspawn extension, otherwise nil." "Return non-nil if FILENAME has an nspawn extension, otherwise nil."
(string-match-p (eval-when-compile (rx ".nspawn" string-end)) filename)) (string-match-p (rx ".nspawn" string-end) filename))
(defun systemd-completion-table (&rest _ignore) (defun systemd-completion-table (&rest _ignore)
"Return a list of completion candidates." "Return a list of completion candidates."
@ -237,7 +237,7 @@ file, defaulting to the link under point, if any."
(or (cdr bounds) (point)) (or (cdr bounds) (point))
(completion-table-dynamic #'systemd-completion-table)))) (completion-table-dynamic #'systemd-completion-table))))
(defun systemd-company-backend (command &optional arg &rest ignored) (defun systemd-company-backend (command &optional arg &rest _ignored)
"Backend for `company-mode' in `systemd-mode' buffers." "Backend for `company-mode' in `systemd-mode' buffers."
(interactive (list 'interactive)) (interactive (list 'interactive))
(pcase command (pcase command
@ -319,7 +319,7 @@ See `font-lock-keywords' and (info \"(elisp) Search-based Fontification\")."
(set-match-data res))))) (set-match-data res)))))
(defconst systemd-font-lock-keywords-1 (defconst systemd-font-lock-keywords-1
`((systemd-section-matcher 1 'font-lock-type-face) '((systemd-section-matcher 1 'font-lock-type-face)
(systemd-key-matcher 1 'font-lock-keyword-face)) (systemd-key-matcher 1 'font-lock-keyword-face))
"Minimal expressions to highlight in `systemd-mode'.") "Minimal expressions to highlight in `systemd-mode'.")
@ -337,7 +337,7 @@ See `font-lock-keywords' and (info \"(elisp) Search-based Fontification\")."
("\\$[A-Z_]+\\>" ("\\$[A-Z_]+\\>"
(systemd-value-extend-region) nil (0 'font-lock-variable-name-face)) (systemd-value-extend-region) nil (0 'font-lock-variable-name-face))
;; specifiers ;; specifiers
("%[nNpPiIfcrRtuUhsmbHv%]" ("%[abBCEfgGhHiIjJlLmnNopPrRsStTuUvVw%]"
(systemd-value-extend-region) nil (0 'font-lock-constant-face)))) (systemd-value-extend-region) nil (0 'font-lock-constant-face))))
"Extended expressions to highlight in `systemd-mode'.") "Extended expressions to highlight in `systemd-mode'.")
@ -396,7 +396,7 @@ See systemd.unit(5) for details on unit file syntax.")
;;;###autoload ;;;###autoload
(define-derived-mode systemd-mode conf-mode "Systemd" (define-derived-mode systemd-mode conf-mode "Systemd"
"Major mode for editing systemd unit files. "Major mode for editing systemd unit files.
See http://www.freedesktop.org/wiki/Software/systemd/ for more See https://www.freedesktop.org/wiki/Software/systemd/ for more
information about systemd. information about systemd.
In addition to any hooks its parent mode might have run, this In addition to any hooks its parent mode might have run, this
@ -407,7 +407,6 @@ Key bindings:
(set-keymap-parent systemd-mode-map nil) (set-keymap-parent systemd-mode-map nil)
(conf-mode-initialize systemd-comment-start) (conf-mode-initialize systemd-comment-start)
(setq-local auto-fill-inhibit-regexp "^[ \t]*?[^;#]") (setq-local auto-fill-inhibit-regexp "^[ \t]*?[^;#]")
(add-hook 'company-backends #'systemd-company-backend)
(add-hook 'completion-at-point-functions #'systemd-complete-at-point nil t) (add-hook 'completion-at-point-functions #'systemd-complete-at-point nil t)
(add-hook 'font-lock-extend-region-functions (add-hook 'font-lock-extend-region-functions
'systemd-font-lock-extend-region nil t) 'systemd-font-lock-extend-region nil t)

View File

@ -1,6 +1,6 @@
;;; systemd-tests.el --- Tests for systemd.el -*- lexical-binding: t -*- ;;; systemd-tests.el --- Tests for systemd.el -*- lexical-binding: t -*-
;; Copyright (C) 2016-2017 Mark Oteiza <mvoteiza@udel.edu> ;; Copyright (C) 2016-2020 Mark Oteiza <mvoteiza@udel.edu>
;; Author: Mark Oteiza <mvoteiza@udel.edu> ;; Author: Mark Oteiza <mvoteiza@udel.edu>

View File

@ -3,12 +3,15 @@ AccuracySec
After After
Alias Alias
AllowIsolate AllowIsolate
AllowedCPUs
AllowedMemoryNodes
Also Also
AmbientCapabilities AmbientCapabilities
AppArmorProfile AppArmorProfile
AssertACPower AssertACPower
AssertArchitecture AssertArchitecture
AssertCapability AssertCapability
AssertControlGroupController
AssertDirectoryNotEmpty AssertDirectoryNotEmpty
AssertFileIsExecutable AssertFileIsExecutable
AssertFileNotEmpty AssertFileNotEmpty
@ -16,6 +19,7 @@ AssertFirstBoot
AssertGroup AssertGroup
AssertHost AssertHost
AssertKernelCommandLine AssertKernelCommandLine
AssertKernelVersion
AssertNeedsUpdate AssertNeedsUpdate
AssertPathExists AssertPathExists
AssertPathExistsGlob AssertPathExistsGlob
@ -43,15 +47,21 @@ BusName
CPUAccounting CPUAccounting
CPUAffinity CPUAffinity
CPUQuota CPUQuota
CPUQuotaPeriodSec
CPUSchedulingPolicy CPUSchedulingPolicy
CPUSchedulingPriority CPUSchedulingPriority
CPUSchedulingResetOnFork CPUSchedulingResetOnFork
CPUShares CPUShares
CPUWeight CPUWeight
CacheDirectory
CacheDirectoryMode
CapabilityBoundingSet CapabilityBoundingSet
CollectMode
ConditionACPower ConditionACPower
ConditionArchitecture ConditionArchitecture
ConditionCPUs
ConditionCapability ConditionCapability
ConditionControlGroupController
ConditionDirectoryNotEmpty ConditionDirectoryNotEmpty
ConditionFileIsExecutable ConditionFileIsExecutable
ConditionFileNotEmpty ConditionFileNotEmpty
@ -59,6 +69,8 @@ ConditionFirstBoot
ConditionGroup ConditionGroup
ConditionHost ConditionHost
ConditionKernelCommandLine ConditionKernelCommandLine
ConditionKernelVersion
ConditionMemory
ConditionNeedsUpdate ConditionNeedsUpdate
ConditionPathExists ConditionPathExists
ConditionPathExistsGlob ConditionPathExistsGlob
@ -69,6 +81,8 @@ ConditionPathIsSymbolicLink
ConditionSecurity ConditionSecurity
ConditionUser ConditionUser
ConditionVirtualization ConditionVirtualization
ConfigurationDirectory
ConfigurationDirectoryMode
Conflicts Conflicts
DefaultDependencies DefaultDependencies
DefaultInstance DefaultInstance
@ -79,10 +93,12 @@ DeviceAllow
DevicePolicy DevicePolicy
DirectoryMode DirectoryMode
DirectoryNotEmpty DirectoryNotEmpty
DisableControllers
Documentation Documentation
DynamicUser DynamicUser
Environment Environment
EnvironmentFile EnvironmentFile
ExecCondition
ExecReload ExecReload
ExecStart ExecStart
ExecStartPost ExecStartPost
@ -91,13 +107,16 @@ ExecStop
ExecStopPost ExecStopPost
ExecStopPre ExecStopPre
FailureAction FailureAction
FailureActionExitStatus
FileDescriptorName FileDescriptorName
FileDescriptorStoreMax FileDescriptorStoreMax
FinalKillSignal
ForceUnmount ForceUnmount
FreeBind FreeBind
Group Group
GuessMainPID GuessMainPID
IOAccounting IOAccounting
IODeviceLatencyTargetSec
IODeviceWeight IODeviceWeight
IOReadBandwidthMax IOReadBandwidthMax
IOReadIOPSMax IOReadIOPSMax
@ -106,6 +125,11 @@ IOSchedulingPriority
IOWeight IOWeight
IOWriteBandwidthMax IOWriteBandwidthMax
IOWriteIOPSMax IOWriteIOPSMax
IPAccounting
IPAddressAllow
IPAddressDeny
IPEgressFilterPath
IPIngressFilterPath
IPTOS IPTOS
IPTTL IPTTL
IgnoreOnIsolate IgnoreOnIsolate
@ -120,6 +144,7 @@ KeepAlive
KeepAliveIntervalSec KeepAliveIntervalSec
KeepAliveProbes KeepAliveProbes
KeepAliveTimeSec KeepAliveTimeSec
KeyringMode
KillMode KillMode
KillSignal KillSignal
LazyUnmount LazyUnmount
@ -147,6 +172,13 @@ ListenSequentialPacket
ListenSpecial ListenSpecial
ListenStream ListenStream
ListenUSBFunction ListenUSBFunction
LockPersonality
LogExtraFields
LogLevelMax
LogRateLimitBurst
LogRateLimitIntervalSec
LogsDirectory
LogsDirectoryMode
MakeDirectory MakeDirectory
Mark Mark
MaxConnections MaxConnections
@ -157,23 +189,30 @@ MemoryHigh
MemoryLimit MemoryLimit
MemoryLow MemoryLow
MemoryMax MemoryMax
MemoryMin
MemorySwapMax MemorySwapMax
MessageQueueMaxMessages MessageQueueMaxMessages
MessageQueueMessageSize MessageQueueMessageSize
MountAPIVFS MountAPIVFS
MountFlags MountFlags
NUMAMask
NUMAPolicy
NetworkNamespacePath
Nice Nice
NoDelay NoDelay
NoNewPrivileges NoNewPrivileges
NonBlocking NonBlocking
NotifyAccess NotifyAccess
OOMPolicy
OOMScoreAdjust OOMScoreAdjust
OnActiveSec OnActiveSec
OnBootSec OnBootSec
OnCalendar OnCalendar
OnClockChange
OnFailure OnFailure
OnFailureJobMode OnFailureJobMode
OnStartupSec OnStartupSec
OnTimezoneChange
OnUnitActiveSec OnUnitActiveSec
OnUnitInactiveSec OnUnitInactiveSec
Options Options
@ -187,18 +226,20 @@ PathChanged
PathExists PathExists
PathExistsGlob PathExistsGlob
PathModified PathModified
PermissionsStartOnly
Persistent Persistent
Personality Personality
PipeSize PipeSize
Priority Priority
PrivateDevices PrivateDevices
PrivateMounts
PrivateNetwork PrivateNetwork
PrivateTmp PrivateTmp
PrivateUsers PrivateUsers
PropagatesReloadTo PropagatesReloadTo
ProtectControlGroups ProtectControlGroups
ProtectHome ProtectHome
ProtectHostname
ProtectKernelLogs
ProtectKernelModules ProtectKernelModules
ProtectKernelTunables ProtectKernelTunables
ProtectSystem ProtectSystem
@ -220,17 +261,20 @@ RequiresMountsFor
Requisite Requisite
Restart Restart
RestartForceExitStatus RestartForceExitStatus
RestartKillSignal
RestartPreventExitStatus RestartPreventExitStatus
RestartSec RestartSec
RestrictAddressFamilies RestrictAddressFamilies
RestrictNamespaces RestrictNamespaces
RestrictRealtime RestrictRealtime
RestrictSUIDSGID
ReusePort ReusePort
RootDirectory RootDirectory
RootDirectoryStartOnly RootDirectoryStartOnly
RootImage RootImage
RuntimeDirectory RuntimeDirectory
RuntimeDirectoryMode RuntimeDirectoryMode
RuntimeDirectoryPreserve
RuntimeMaxSec RuntimeMaxSec
SELinuxContext SELinuxContext
SELinuxContextFromNet SELinuxContextFromNet
@ -253,6 +297,8 @@ Sockets
SourcePath SourcePath
StandardError StandardError
StandardInput StandardInput
StandardInputData
StandardInputText
StandardOutput StandardOutput
StartLimitAction StartLimitAction
StartLimitBurst StartLimitBurst
@ -261,7 +307,11 @@ StartupBlockIOWeight
StartupCPUShares StartupCPUShares
StartupCPUWeight StartupCPUWeight
StartupIOWeight StartupIOWeight
StateDirectory
StateDirectoryMode
StopWhenUnneeded StopWhenUnneeded
SuccessAction
SuccessActionExitStatus
SuccessExitStatus SuccessExitStatus
SupplementaryGroups SupplementaryGroups
Symlinks Symlinks
@ -279,6 +329,9 @@ TTYVHangup
TTYVTDisallocate TTYVTDisallocate
TasksAccounting TasksAccounting
TasksMax TasksMax
TemporaryFileSystem
TimeoutAbortSec
TimeoutCleanSec
TimeoutIdleSec TimeoutIdleSec
TimeoutSec TimeoutSec
TimeoutStartSec TimeoutStartSec
@ -292,6 +345,7 @@ UMask
USBFunctionDescriptors USBFunctionDescriptors
USBFunctionStrings USBFunctionStrings
Unit Unit
UnsetEnvironment
User User
UtmpIdentifier UtmpIdentifier
UtmpMode UtmpMode
@ -299,6 +353,7 @@ WakeSystem
WantedBy WantedBy
Wants Wants
WatchdogSec WatchdogSec
WatchdogSignal
What What
Where Where
WorkingDirectory WorkingDirectory