1# WARNING : This file is NOT a valid systemd service.
2# It was created to demonstrate/test KDE syntax highlighting.
3# It includes invalid sections, option names and option values.
4
5; NOTE: Alerts in comments are supported.
6
7
8[Automount]
9Where = /the/mount/directory
10DirectoryMode = 0755
11TimeoutIdleSec = 5min 5s
12
13
14[Install]
15Alias = some.service some.invalid some_%b.service
16WantedBy = some.service some.socket some.invalid
17RequiredBy = some.service some.socket some.invalid
18Also = some.service some.socket some.invalid
19DefaultInstance = id
20
21
22[Mount]
23What = /dev/disk/by-uuid/444c-0d9d-411e-a973-015b31acaa
24Where = /the/mount/directory
25Type = btrfs
26Options = subvol=some_name,compress=lzo,noatime,noauto,nodev,nosuid
27SloppyOptions = on
28LazyUnmount = true
29ReadWriteOnly = true
30ForceUnmount = yes
31DirectoryMode = 0700
32TimeoutSec = 5 m 20 s
33
34
35[Path]
36PathExists = /some/absolute/path
37PathExistsGlob = /some/glob*
38PathChanged = /some/absolute/path
39PathModified = /some/absolute/path
40DirectoryNotEmpty = /some/absolute/path
41Unit = some@instance.service
42MakeDirectory = yes
43DirectoryMode = 0700
44
45
46[Service]
47## from systemd.service
48Type = exec
49RemainAfterExit = false
50GuessMainPID = no
51PIDFile = some/path
52BusName = some.name
53ExecStart = /usr/bin/Xorg ${DISPLAY} ${XDG_VTNR} \
54  -logfile %t/X.%i.log \
55  -nolisten tcp \
56  -quiet
57ExecStartPre = @/bin/start/pre some args
58ExecStartPost = -cmd arg, @cmd2 name -o \x0A
59ExecCondition = /bin/exec/condition
60ExecReload = /bin/exec/reload
61ExecStop = /bin/kill -SIGABRT $MAINPID
62ExecStopPost = -:!!/bin/stop/post
63RestartSec = 15
64TimeoutStartSec = 5s 100ms
65TimeoutStopSec = infinity
66TimeoutAbortSec = 15
67TimeoutSec = 10
68TimeoutStartFailureMode = abort
69TimeoutStopFailureMode = kill
70RuntimeMaxSec = 1min 20 seconds
71WatchdogSec = 90
72Restart = on-watchdog
73SuccessExitStatus = PROTOCOL RUNTIME_DIRECTORY \
74  SECCOMP 15 23 SIGUSR1 SIGXCPU
75RestartPreventExitStatus = 15 23 SIGUSR1 \
76  SIGXCPU
77RestartForceExitStatus = SIGQUIT SIGSTOP 99
78RootDirectoryStartOnly = false
79NonBlocking = false
80NotifyAccess = exec
81Sockets = some.socket \
82  some-other.socket
83FileDescriptorStoreMax = 5
84USBFunctionDescriptors = /some/absolute/path
85USBFunctionStrings = /some/absolute/path
86OOMPolicy = stop
87
88## from systemd.exec
89ExecPaths = some/path some/other/path
90ExtensionImages = /source/path
91IPCNamespacePath = /some/absolute/path
92NoExecPaths = some/path some/other/path
93PrivateIPC = false
94## from systemd.exec Paths
95WorkingDirectory = ~
96RootDirectory = /some/path
97RootImage = /some/path
98RootImageOptions = partition_name,noauto
99RootHash = /some/path
100RootHash = 0xABCDEF
101RootHashSignature =
102RootVerity = /some/path
103MountAPIVFS = true
104ProcSubset = pid
105BindPaths = /source/path,/destination/path,rbind \
106  /source/path2,/destination/path2,norbind \
107  /source/path3
108BindReadOnlyPaths = /source/path,/destination/path,rbind \
109  /source/path2,/destination/path2,norbind \
110  /source/path3
111MountImages = /source/path,dest
112## from systemd.exec Credentials
113User = 1000
114Group = group-name
115DynamicUser = true
116SupplementaryGroups = group1 group-two 100 \
117  one-more-group
118PAMName =
119LoadCredential = some_id /path/to/credential/data
120SetCredential = some_visible_credential
121## from systemd.exec Capabilities
122CapabilityBoundingSet = ~ CAP_SYS_ADMIN CAP_DAC_OVERRIDE   CAP_SYS_PTRACE \
123  CAP_NET_ADMIN  CAP_SYS_BOOT
124AmbientCapabilities = CAP_SYS_ADMIN \
125  CAP_DAC_OVERRIDE
126## from systemd.exec Security
127NoNewPrivileges = true
128SecureBits = keep-caps keep-caps-locked \
129  no-setuid-fixup \
130  no-setuid-fixup-locked
131## from systemd.exec Mandatory Access Control
132SELinuxContext =
133AppArmorProfile = - someprofile
134SmackProcessLabel = -label
135## from systemd.exec Process Properties
136LimitCPU = 15s:20s
137LimitFSIZE = 12G:24G
138LimitDATA = infinity
139LimitSTACK = 512K
140LimitCORE = 128K
141LimitRSS = 2G
142LimitNOFILE = 123:234
143LimitAS = 3G
144LimitNPROC = 4711
145LimitMEMLOCK = 12G
146LimitLOCKS = 321
147LimitSIGPENDING = 46
148LimitMSGQUEUE = 512K
149LimitNICE = +12 : +15
150LimitRTPRIO = 20 : 40
151LimitRTTIME = 12us : 15
152UMask = 0022
153CoredumpFilter = default private-dax shared-dax
154KeyringMode = private
155OOMScoreAdjust = 123
156TimerSlackNSec = 321
157Personality = x86-64
158IgnoreSIGPIPE = false
159## from systemd.exec Scheduling
160Nice = +12
161CPUSchedulingPolicy = fifo
162CPUSchedulingPriority = 34
163CPUSchedulingResetOnFork = false
164CPUAffinity = 0 1, 2 , \
165  3, 4-8
166NUMAPolicy = interleave
167NUMAMask = 1,2,3-8
168IOSchedulingClass = idle
169IOSchedulingPriority = 5
170## from systemd.exec Sandboxing
171ProtectSystem = strict
172ProtectHome = read-only
173RuntimeDirectory = some/dir
174StateDirectory = some/dir
175CacheDirectory = some/dir
176LogsDirectory = some/dir
177ConfigurationDirectory = some/dir
178RuntimeDirectoryMode = 0755
179StateDirectoryMode = 0755
180CacheDirectoryMode = 0755
181LogsDirectoryMode = 0755
182ConfigurationDirectoryMode = 0755
183RuntimeDirectoryPreserve = restart
184TimeoutCleanSec = 20
185ReadWritePaths = some/dir
186ReadOnlyPaths = some/dir
187InaccessiblePaths = some/dir
188TemporaryFileSystem = /var:ro
189PrivateTmp = yes
190PrivateDevices = on
191PrivateNetwork = no
192NetworkNamespacePath = /some/path
193PrivateUsers = off
194ProtectHostname = false
195ProtectClock = no
196ProtectKernelTunables = yes
197ProtectKernelModules = true
198ProtectKernelLogs = yes
199ProtectControlGroups = y
200RestrictAddressFamilies = ~ AF_INET AF_VSOCK
201RestrictNamespaces = cgroup net \
202  ipc
203LockPersonality = yes
204MemoryDenyWriteExecute = true
205RestrictRealtime = true
206RestrictSUIDSGID = true
207RemoveIPC = no
208PrivateMounts = false
209MountFlags = shared
210## from systemd.exec System Call Filtering
211SystemCallFilter = @debug @aio
212SystemCallErrorNumber = ETIMEDOUT
213SystemCallArchitectures = mips64-n32 \
214  native sparc
215SystemCallLog = ~ some_name \
216  another_name
217## from systemd.exec System Call Environment
218Environment = DISPLAY=:%i
219Environment = XAUTHORITY=%t/Xauthority.%i \
220  "var=value with spaces"
221Environment = XDG_VTNR=vt%i
222EnvironmentFile = - /some/path
223PassEnvironment = SOME VARIABLES TO PASS
224UnsetEnvironment = SOME VARIABLES TO BE UNSET
225## from systemd.exec Logging and Standard Input/Output
226StandardInput = file:/some/absolute/path
227StandardOutput = journal+console
228StandardError = inherit
229StandardInputText = SWNrIHNpdHplIGRhIHVuJyBlc3NlIEtsb3B
230StandardInputData = yBkZW5rIG5hbnUhCkpldHogaXNzZSB1ZmYsIGVy
231LogLevelMax = info
232LogExtraFields = FIELD=VALUE OTHER_FIELD=VALUE2
233LogRateLimitIntervalSec = 1s 500ms
234LogRateLimitBurst = 50
235LogNamespace = some_name
236SyslogIdentifier = some_identifier
237SyslogFacility = daemon
238SyslogLevel = debug
239SyslogLevelPrefix = true
240TTYPath = /dev/console
241TTYReset = yes
242TTYVHangup = on
243TTYVTDisallocate = true
244## from systemd.exec System V Compatibility
245UtmpIdentifier = utid
246UtmpMode = init
247
248## from systemd.kill
249KillMode = process
250KillSignal = SIGABRT
251RestartKillSignal = SIGHUP
252SendSIGHUP = yes
253SendSIGKILL = no
254FinalKillSignal = SIGABRT
255WatchdogSignal = SIGQUIT
256
257## from systemd.resource-control
258CPUAccounting = yes
259CPUWeight = 1234
260StartupCPUWeight = 321
261CPUQuota = 123.4%
262CPUQuotaPeriodSec = 1s 23ms 45us
263AllowedCPUs = 0-8, 12
264AllowedMemoryNodes = 5-8, 12
265MemoryAccounting = yes
266MemoryMin = 10G
267MemoryLow = 20%
268MemoryHigh = 40 %
269MemoryMax = 60%
270MemorySwapMax = 10G
271TasksAccounting = on
272TasksMax = 50%
273IOAccounting = on
274IOWeight = 1000
275StartupIOWeight = 500
276IODeviceWeight = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 1000
277IOReadBandwidthMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 10M
278IOWriteBandwidthMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5M
279IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 1K
280IOWriteIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 2K
281IODeviceLatencyTargetSec = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5s 20ms 100us
282IPAccounting = on
283IPAddressAllow = 127.0.0.0/8 ::1/128
284DevicePolicy = strict
285Slice = some.slice
286Delegate = bpf-firewall
287DisableControllers = cpu io
288ManagedOOMSwap = auto
289ManagedOOMMemoryPressure = kill
290ManagedOOMMemoryPressureLimit = 50%
291BPFProgram = bind6:/sys/fs/bpf/sock-addr-hook
292
293[Slice]
294CPUAccounting = yes
295CPUWeight = 1234
296StartupCPUWeight = 321
297CPUQuota = 123.4%
298CPUQuotaPeriodSec = 1s 23ms 45us
299MemoryAccounting = no
300
301
302[Socket]
303ListenStream = 0.0.0.0:4000
304ListenDatagram = /path/to/socket
305ListenFIFO = /some/path
306ListenSequentialPacket = @namespace
307ListenSpecial = /some/path
308ListenNetlink = kobject-uevent
309ListenMessageQueue = /queue
310ListenUSBFunction = /some/path
311SocketProtocol = sctp
312BindIPv6Only = both
313Backlog = 123
314BindToDevice = name
315SocketGroup = users
316SocketUser = someuser
317SocketMode = 0644
318DirectoryMode = 0744
319Accept = no
320Writable = yes
321FlushPending = true
322MaxConnections = 34
323MaxConnectionsPerSource = 10
324KeepAlive = yes
325KeepAliveTimeSec = 15s 30ms
326KeepAliveIntervalSec = 10s 123us
327KeepAliveProbes = 12
328NoDelay = false
329Priority = 5
330DeferAcceptSec = 1s 100ms
331ReceiveBuffer = 10K
332SendBuffer = 15K
333IPTOS = low-delay
334IPTTL = 12
335Mark = 12
336ReusePort = no
337SmackLabel = value
338SmackLabelIPIn = value
339SmackLabelIPOut = value
340SELinuxContextFromNet = true
341PipeSize = 1M
342MessageQueueMaxMessages = 12
343MessageQueueMessageSize = 1234
344FreeBind = yes
345Transparent = no
346Broadcast = true
347PassCredentials = yes
348PassSecurity = true
349PassPacketInfo = true
350Timestamping = nsec
351TCPCongestion = westwood
352ExecStartPre = +/usr/bin/start/pre
353ExecStartPost = @/usr/bin/start/post arg
354ExecStopPre = /usr/bin/stop/pre
355ExecStopPost = /usr/bin/stop/post
356TimeoutSec = 1m 30sec
357Service = some.service
358RemoveOnStop = yes
359Symlinks = /some/path /some/other/path
360FileDescriptorName = some_name
361TriggerLimitIntervalSec = 1s 500ms
362TriggerLimitBurst = 50
363
364
365[Swap]
366What = /dev/disk/by-uuid/5db77-fde6-424e-a1bb-e88e8996c
367Priority = 123
368Options = some,device,options
369TimeoutSec = 1m 20s
370# see [Service] for options from systemd.exec and systemd.kill
371
372
373[Timer]
374OnActiveSec = 90
375OnBootSec = 5min 15s 100ms
376OnStartupSec = 2 minutes
377OnUnitActiveSec = 1 min
378OnUnitInactiveSec = 1m 30s
379OnCalendar = daily
380AccuracySec = 1min 10sec
381RandomizedDelaySec = 30s
382FixedRandomDelay = yes
383OnClockChange = false
384OnTimezoneChange = true
385Unit = some_timed.service
386Persistent = true
387WakeSystem = no
388RemainAfterElapse = true
389
390
391[Unit]
392Description = Testing systemd unit
393Documentation = https://docs.kde.org/stable5/en/applications/katepart/highlight.html \
394  man:/systemd.unit
395Requires = some.service
396Requisite = some-service-name.service
397Wants = some.service
398BindsTo = some.service
399BindsTo = %i.mount
400PartOf = some.service
401Upholds = some.service some-other.service
402Conflicts = some.service
403Before = some.service
404After = some.service some@instance.service
405OnFailure = some.service
406OnSuccess = some.service some-other.service
407PropagatesReloadTo = some.service
408ReloadPropagatedFrom = some.service
409JoinsNamespaceOf = some.service
410PropagatesStopTo = some.service some-other.service
411StopPropagatedFrom = some.service some-other.service
412RequiresMountsFor = /tmp /var/log %h
413OnFailureJobMode = fail
414IgnoreOnIsolate = true
415StopWhenUnneeded = false
416RefuseManualStart = false
417RefuseManualStop = true
418AllowIsolate = true
419DefaultDependencies = no
420CollectMode = inactive
421FailureAction = reboot
422SuccessAction = none
423FailureActionExitStatus = 15
424SuccessActionExitStatus = 255
425JobTimeoutSec = 10
426JobRunningTimeoutSec = infinity
427JobTimeoutAction = none
428JobTimeoutRebootArgument = some argument
429StartLimitIntervalSec = 0
430StartLimitBurst = 10
431StartLimitAction = none
432RebootArgument = some argument
433ConditionArchitecture = x86
434ConditionVirtualization = |vmware
435ConditionHost = !shodan*
436ConditionKernelCommandLine = !kernel_option
437ConditionKernelVersion = | >= 4.*
438ConditionEnvironment = SOME_ENVIRONMENT_VARIABLE=some_value
439ConditionSecurity = | ! selinux
440ConditionCapability = !CAP_NET_ADMIN
441ConditionACPower = true
442ConditionNeedsUpdate = !/var
443ConditionFirstBoot = |false
444ConditionPathExists = !/some/absolute/path
445ConditionPathExistsGlob = |!/m?t/s[ao]me/path*
446ConditionPathIsDirectory = !/some/path
447ConditionPathIsSymbolicLink = !/some/path
448ConditionPathIsMountPoint = /some/path
449ConditionPathIsReadWrite = !/some/path
450ConditionPathIsEncrypted = !/some/absolute/path
451ConditionDirectoryNotEmpty = !/some/path
452ConditionFileNotEmpty = !/some/path
453ConditionFileIsExecutable = !/some/path
454ConditionUser = |@system
455ConditionGroup = |groupname
456ConditionControlGroupController = memory
457ConditionMemory = | >= 1500000
458ConditionCPUs = | < 8
459ConditionOSRelease = ID=some-id
460AssertArchitecture = x86
461AssertVirtualization = |vmware
462AssertHost = !shodan*
463AssertKernelCommandLine = !kernel_option
464AssertKernelVersion = !>=5.3
465AssertEnvironment = SOME_ENVIRONMENT_VARIABLE=some_value
466AssertSecurity = | ! selinux
467AssertCapability = !CAP_NET_ADMIN
468AssertACPower = true
469AssertNeedsUpdate = !/var
470AssertFirstBoot = |false
471AssertPathExists = !/some/absolute/path
472AssertPathExistsGlob = |!/mnt/*
473AssertPathIsDirectory = !/some/path
474AssertPathIsSymbolicLink = !/some/path
475AssertPathIsMountPoint = !/some/path
476AssertPathIsReadWrite = !/some/path
477AssertPathIsEncrypted = !/some/path
478AssertDirectoryNotEmpty = !/some/path
479AssertFileNotEmpty = !/some/path
480AssertFileIsExecutable = !/some/path
481AssertUser = |@system
482AssertGroup = |groupname
483AssertControlGroupController = memory
484AssertOSRelease = ID=some-id
485
486
487###### invalid sections
488[Device]
489[Invalid]
490[Target]
491
492
493
494############
495# Extensions
496############
497
498
499###### option
500[Unit]
501Description = testing extensions
502  X-this = some value
503X-multiple-lines = some.service \
504 other service
505
506
507###### section
508[X-Unit]
509name = value
510
511## Comments in an extension section are just the same as elsewhere.
512
513Some text in an extension section.
514The extension section ends with the next section header.
515
516
517
518########
519# Format
520########
521
522###### for options accepting multiple values, lines may be continued
523#      using a trailing backlash
524[Unit]
525Before = before-me.socket \
526  before-me.service
527
528###### additional spaces are OK
529     [Unit]
530  RequiresMountsFor   =    /tmp /var/log
531
532
533
534########################################################
535# Testing valid and invalid values for defined contexts.
536########################################################
537
538
539###### invalid options
540[Unit]
541# missing assignment operator
542Description is invalid as it lacks the assignment operator
543# invalid option name
544InvalidOption = some text
545# WantedBy belongs to the [Install] section
546WantedBy = some.service some.socket
547
548
549###### AC architecture
550[Unit]
551# see "architecture" for all possible values
552AssertArchitecture = alpha
553AssertArchitecture = | alpha
554AssertArchitecture = |! alpha
555AssertArchitecture = ! alpha
556# other options
557ConditionArchitecture = |! alpha
558## invalid values
559AssertArchitecture = !| alpha
560AssertArchitecture = || alpha
561AssertArchitecture = !! alpha
562
563
564###### AC boolean
565[Unit]
566# see "boolean" for all possible values
567AssertACPower = true
568AssertACPower = | true
569AssertACPower = | ! true
570AssertACPower = ! true
571# other options
572AssertFirstBoot = | ! true
573ConditionACPower = | ! true
574ConditionFirstBoot = | ! true
575## invalid values
576AssertACPower = ! | true
577AssertACPower = | | true
578AssertACPower = !! true
579
580
581###### AC capability
582[Unit]
583# see "capability" for all possible values
584AssertCapability = CAP_CHOWN
585AssertCapability = | CAP_CHOWN
586AssertCapability = |! CAP_CHOWN
587AssertCapability = ! CAP_CHOWN
588# other options
589ConditionCapability = |! CAP_CHOWN
590## invalid values
591AssertCapability = !| CAP_CHOWN
592AssertCapability = || CAP_CHOWN
593AssertCapability = !! CAP_CHOWN
594
595
596###### AC cardinal
597[Unit]
598ConditionMemory = < 123456789
599ConditionMemory = <= 123456789
600ConditionMemory = = 123456789
601ConditionMemory = != 123456789
602ConditionMemory = >=123456789
603ConditionMemory = > 123456789
604ConditionMemory = |< 123456789
605ConditionMemory = |<= 123456789
606ConditionMemory = |= 123456789
607ConditionMemory = | != 123456789
608ConditionMemory = | >=123456789
609ConditionMemory = | > 123456789
610## other options
611ConditionCPUs = > 4
612## invalid values
613ConditionMemory = == 123456789
614ConditionMemory = >> 123456789
615ConditionMemory = = 123456789.987
616ConditionMemory = || = 123456789.987
617
618
619###### AC controller cg (assert/condition for control group controller)
620[Unit]
621AssertControlGroupController = blkio
622AssertControlGroupController = | blkio
623AssertControlGroupController = |! blkio
624AssertControlGroupController = ! blkio
625# other options
626ConditionControlGroupController = |! blkio
627## invalid values
628AssertControlGroupController = !| blkio
629AssertControlGroupController = || blkio
630AssertControlGroupController = !! blkio
631
632
633###### AC firmware type
634[Unit]
635# see "firmware type" for all possible values
636ConditionFirmware = |! uefi
637
638
639###### AC group
640[Unit]
641AssertGroup = | name
642AssertGroup = |! name
643AssertGroup = ! name
644# other options
645ConditionGroup = |! name
646## invalid values
647AssertGroup = !| name
648AssertGroup = || name
649AssertGroup = !! name
650
651
652###### AC security
653[Unit]
654# see "security" for all possible values
655AssertSecurity = audit
656AssertSecurity = | audit
657AssertSecurity = |! audit
658AssertSecurity = ! audit
659# other options
660ConditionSecurity = |! audit
661## invalid values
662AssertSecurity = !| audit
663AssertSecurity = || audit
664AssertSecurity = !! audit
665
666
667###### AC text
668[Unit]
669AssertKernelCommandLine = option=value
670AssertKernelCommandLine = | arg
671AssertKernelCommandLine = |! arg
672AssertKernelCommandLine = ! arg
673# other options
674AssertDirectoryNotEmpty = |! /some/path
675AssertFileIsExecutable = |! /some/path
676AssertFileNotEmpty = |! /some/path
677AssertKernelVersion = |! arg
678AssertNeedsUpdate = |! /etc
679AssertPathExists = |! /some/path
680AssertPathIsDirectory = |! /some/path
681AssertPathIsEncrypted = |! /some/path
682AssertPathIsMountPoint = |! /some/path
683AssertPathIsReadWrite = |! /some/path
684AssertPathIsSymbolicLink = |! /some/path
685ConditionDirectoryNotEmpty = |! /some/path
686ConditionEnvironment = |! name=value
687ConditionFileIsExecutable = |! /some/path
688ConditionFileNotEmpty = |! /some/path
689ConditionKernelCommandLine = |! arg
690ConditionKernelVersion = |! arg
691ConditionNeedsUpdate = |! /var
692ConditionPathExists = |! /some/path
693ConditionPathIsDirectory = |! /some/path
694ConditionPathIsEncrypted = |! /some/path
695ConditionPathIsMountPoint = |! /some/path
696ConditionPathIsReadWrite = |! /some/path
697ConditionPathIsSymbolicLink = |! /some/path
698## invalid values
699AssertKernelCommandLine = !| arg
700AssertKernelCommandLine = || arg
701AssertKernelCommandLine = !! arg
702
703
704###### AC text *
705[Unit]
706AssertHost = hostname
707AssertHost = hostname*
708AssertHost = | hostname*
709AssertHost = |!hostname*
710AssertHost = !hostname*
711# other options
712ConditionHost = |!hostname*
713## invalid values
714AssertHost = !| hostname*
715AssertHost = || hostname*
716AssertHost = !! hostname*
717
718
719###### AC text glob
720[Unit]
721AssertPathExistsGlob = |!/s[ao]me/path*
722## invalid values
723ConditionPathExistsGlob = !! /s?me/path*
724
725
726###### AC user
727AssertUser = | @system
728AssertUser = | name
729AssertUser = |! @system
730AssertUser = ! name
731# other options
732ConditionUser = |! @system
733## invalid values
734AssertUser = !| name
735AssertUser = || name
736AssertUser = !! name
737
738
739###### AC virtualization
740# accepts boolean too
741AssertVirtualization = |true
742# see "virtualization" for all possible values
743AssertVirtualization = container
744AssertVirtualization = | container
745AssertVirtualization = |! container
746ConditionVirtualization = |! container
747AssertVirtualization = ! container
748## invalid values
749AssertVirtualization = ! | true
750AssertVirtualization = | | true
751AssertVirtualization = !! true
752# multiple values
753AssertVirtualization = true false
754
755
756###### - text
757[Service]
758AppArmorProfile = - some-profile
759AppArmorProfile =-profile
760
761
762###### -+/path list
763[Service]
764ReadWritePaths = -/some/path
765ReadWritePaths = -+/some/path
766ReadWritePaths = +/some/path
767ReadWritePaths =+/some/path-+/ -/some/other/path \
768  -+/one/more/path
769## invalid values
770ReadWritePaths = - /some/path
771ReadWritePaths = + /some/path
772ReadWritePaths = +-/some/path
773
774
775###### ~ address family list
776[Service]
777RestrictAddressFamilies = AF_ALG
778RestrictAddressFamilies = AF_APPLETALK
779RestrictAddressFamilies = AF_ASH
780RestrictAddressFamilies = AF_ATMPVC
781RestrictAddressFamilies = AF_ATMSVC
782RestrictAddressFamilies = AF_AX25
783RestrictAddressFamilies = AF_BLUETOOTH
784RestrictAddressFamilies = AF_BRIDGE
785RestrictAddressFamilies = AF_CAIF
786RestrictAddressFamilies = AF_CAN
787RestrictAddressFamilies = AF_DECnet
788RestrictAddressFamilies = AF_ECONET
789RestrictAddressFamilies = AF_FILE
790RestrictAddressFamilies = AF_IB
791RestrictAddressFamilies = AF_IEEE802154
792RestrictAddressFamilies = AF_INET
793RestrictAddressFamilies = AF_INET6
794RestrictAddressFamilies = AF_IPX
795RestrictAddressFamilies = AF_IRDA
796RestrictAddressFamilies = AF_ISDN
797RestrictAddressFamilies = AF_IUCV
798RestrictAddressFamilies = AF_KCM
799RestrictAddressFamilies = AF_KEY
800RestrictAddressFamilies = AF_LLC
801RestrictAddressFamilies = AF_LOCAL
802RestrictAddressFamilies = AF_MAX
803RestrictAddressFamilies = AF_MPLS
804RestrictAddressFamilies = AF_NETBEUI
805RestrictAddressFamilies = AF_NETLINK
806RestrictAddressFamilies = AF_NETROM
807RestrictAddressFamilies = AF_NFC
808RestrictAddressFamilies = AF_PACKET
809RestrictAddressFamilies = AF_PHONET
810RestrictAddressFamilies = AF_PPPOX
811RestrictAddressFamilies = AF_QIPCRTR
812RestrictAddressFamilies = AF_RDS
813RestrictAddressFamilies = AF_ROSE
814RestrictAddressFamilies = AF_ROUTE
815RestrictAddressFamilies = AF_RXRPC
816RestrictAddressFamilies = AF_SECURITY
817RestrictAddressFamilies = AF_SMC
818RestrictAddressFamilies = AF_SNA
819RestrictAddressFamilies = AF_TIPC
820RestrictAddressFamilies = AF_UNIX
821RestrictAddressFamilies = AF_UNSPEC
822RestrictAddressFamilies = AF_VSOCK
823RestrictAddressFamilies = AF_WANPIPE
824RestrictAddressFamilies = AF_X25
825RestrictAddressFamilies = AF_XDP
826RestrictAddressFamilies = ~ AF_XDP AF_LOCAL \
827  AF_SECURITY
828# since version 249 an additional 'none' is supported
829RestrictAddressFamilies = none
830## invalid values
831RestrictAddressFamilies = AF_INVALID
832# multiple values including `none`
833RestrictAddressFamilies = AF_ROUTE none AF_ROSE
834
835
836###### ~ capability list
837# all the values of capability, but multple values for a single option entry are valid
838[Service]
839AmbientCapabilities = ~ CAP_NET_ADMIN CAP_NET_RAW \
840  CAP_WAKE_ALARM
841CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_RAW \
842  CAP_WAKE_ALARM
843
844
845###### ~ namespace list
846[Service]
847RestrictNamespaces = cgroup
848RestrictNamespaces = ipc
849RestrictNamespaces = mnt
850RestrictNamespaces = net
851RestrictNamespaces = pid
852RestrictNamespaces = user
853RestrictNamespaces = uts
854RestrictNamespaces = cgroup uts
855RestrictNamespaces = ~ cgroup pid \
856  uts
857# includes boolean
858RestrictNamespaces = true
859RestrictNamespaces = false
860## invalid values
861RestrictNamespaces = invalid
862RestrictNamespaces = ~ true
863# if boolean, no multiple values
864RestrictNamespaces = true cgroup
865
866
867###### ~ system call filter list
868[Service]
869SystemCallFilter = @aio
870SystemCallFilter = @basic-io
871SystemCallFilter = @chown
872SystemCallFilter = @clock
873SystemCallFilter = @cpu-emulation
874SystemCallFilter = @debug
875SystemCallFilter = @default
876SystemCallFilter = @file-system
877SystemCallFilter = @io-event
878SystemCallFilter = @ipc
879SystemCallFilter = @keyring
880SystemCallFilter = @memlock
881SystemCallFilter = @module
882SystemCallFilter = @mount
883SystemCallFilter = @network-io
884SystemCallFilter = @obsolete
885SystemCallFilter = @privileged
886SystemCallFilter = @process
887SystemCallFilter = @raw-io
888SystemCallFilter = @reboot
889SystemCallFilter = @resources
890SystemCallFilter = @setuid
891SystemCallFilter = @signal
892SystemCallFilter = @swap
893SystemCallFilter = @sync
894SystemCallFilter = @system-service
895SystemCallFilter = @timer
896SystemCallFilter = @obsolete @timer \
897  @swap
898SystemCallFilter = ~ @reboot @swap
899## invalid values
900SystemCallFilter = invalid
901SystemCallFilter = @invalid @ sync
902
903
904###### action
905[Unit]
906FailureAction = exit
907FailureAction = exit-force
908FailureAction = none
909FailureAction = poweroff
910FailureAction = poweroff-force
911FailureAction = poweroff-immediate
912FailureAction = reboot
913FailureAction = reboot-force
914FailureAction = reboot-immediate
915## invalid values
916FailureAction = invalid
917FailureAction = invalid exit
918# multiple values
919FailureAction = none exit
920FailureActionExitStatus = 123
921
922
923###### architecture
924[Unit]
925ConditionArchitecture = alpha
926ConditionArchitecture = arc
927ConditionArchitecture = arc-be
928ConditionArchitecture = arm
929ConditionArchitecture = arm-be
930ConditionArchitecture = arm64
931ConditionArchitecture = arm64-be
932ConditionArchitecture = cris
933ConditionArchitecture = ia64
934ConditionArchitecture = m68k
935ConditionArchitecture = mips
936ConditionArchitecture = mips-le
937ConditionArchitecture = mips64
938ConditionArchitecture = mips64-le
939ConditionArchitecture = parisc
940ConditionArchitecture = parisc64
941ConditionArchitecture = ppc
942ConditionArchitecture = ppc-le
943ConditionArchitecture = ppc64
944ConditionArchitecture = ppc64-le
945ConditionArchitecture = s390
946ConditionArchitecture = s390x
947ConditionArchitecture = sh
948ConditionArchitecture = sh64
949ConditionArchitecture = sparc
950ConditionArchitecture = sparc64
951ConditionArchitecture = tilegx
952ConditionArchitecture = x86
953ConditionArchitecture = x86-64
954# special value "native"
955ConditionArchitecture = native
956## invalid values
957ConditionArchitecture = invalid
958ConditionArchitecture = invalid x86
959# multiple values
960ConditionArchitecture = sparc x86
961
962
963###### boolean
964[Unit]
965StopWhenUnneeded = 1
966StopWhenUnneeded = 0
967StopWhenUnneeded = true
968StopWhenUnneeded = t
969StopWhenUnneeded = false
970StopWhenUnneeded = f
971StopWhenUnneeded = yes
972StopWhenUnneeded = y
973StopWhenUnneeded = no
974StopWhenUnneeded = n
975StopWhenUnneeded = on
976StopWhenUnneeded = off
977## invalid values
978StopWhenUnneeded = invalid
979# multiple values
980StopWhenUnneeded = false true
981
982
983###### calendar
984[Timer]
985OnCalendar = daily
986OnCalendar = hourly
987OnCalendar = minutely
988OnCalendar = monthly
989OnCalendar = quarterly
990OnCalendar = semiannually
991OnCalendar = weekly
992OnCalendar = yearly
993OnCalendar = daily UTC
994OnCalendar = daily utc
995OnCalendar = monday *-12-* 17:00
996OnCalendar = Mon *-12-* 17:00
997## invalid values
998OnCalendar = Mo *-12-* 17:00
999
1000
1001###### capability
1002[Unit]
1003ConditionCapability = CAP_AUDIT_CONTROL
1004ConditionCapability = CAP_AUDIT_READ
1005ConditionCapability = CAP_AUDIT_WRITE
1006ConditionCapability = CAP_BLOCK_SUSPEND
1007ConditionCapability = CAP_CHECKPOINT_RESTORE
1008ConditionCapability = CAP_CHOWN
1009ConditionCapability = CAP_DAC_OVERRIDE
1010ConditionCapability = CAP_DAC_READ_SEARCH
1011ConditionCapability = CAP_FOWNER
1012ConditionCapability = CAP_FSETID
1013ConditionCapability = CAP_IPC_LOCK
1014ConditionCapability = CAP_IPC_OWNER
1015ConditionCapability = CAP_KILL
1016ConditionCapability = CAP_LEASE
1017ConditionCapability = CAP_LINUX_IMMUTABLE
1018ConditionCapability = CAP_MAC_ADMIN
1019ConditionCapability = CAP_MAC_OVERRIDE
1020ConditionCapability = CAP_MKNOD
1021ConditionCapability = CAP_NET_ADMIN
1022ConditionCapability = CAP_NET_BIND_SERVICE
1023ConditionCapability = CAP_NET_BROADCAST
1024ConditionCapability = CAP_NET_RAW
1025ConditionCapability = CAP_SETGID
1026ConditionCapability = CAP_SETFCAP
1027ConditionCapability = CAP_SETPCAP
1028ConditionCapability = CAP_SETUID
1029ConditionCapability = CAP_SYS_ADMIN
1030ConditionCapability = CAP_SYS_BOOT
1031ConditionCapability = CAP_SYS_CHROOT
1032ConditionCapability = CAP_SYS_MODULE
1033ConditionCapability = CAP_SYS_NICE
1034ConditionCapability = CAP_SYS_PACCT
1035ConditionCapability = CAP_SYS_PTRACE
1036ConditionCapability = CAP_SYS_RAWIO
1037ConditionCapability = CAP_SYS_RESOURCE
1038ConditionCapability = CAP_SYS_TIME
1039ConditionCapability = CAP_SYS_TTY_CONFIG
1040ConditionCapability = CAP_SYSLOG
1041ConditionCapability = CAP_WAKE_ALARM
1042## invalid values
1043ConditionCapability = invalid
1044# multiple values
1045ConditionCapability = CAP_NET_ADMIN CAP_NET_RAW
1046
1047
1048###### cardinal
1049[Unit]
1050StartLimitBurst = 15
1051## invalid values
1052StartLimitBurst = -10
1053StartLimitBurst = 12.34
1054StartLimitBurst = 10%
1055StartLimitBurst = infinity
1056# multiple values
1057StartLimitBurst = 10 20
1058
1059
1060###### cardinal % infinity
1061[Service]
1062TasksMax = 15
1063TasksMax = 10%
1064TasksMax = infinity
1065## invalid values
1066TasksMax = -10
1067TasksMax = 12.34
1068# multiple values
1069TasksMax = 10 20
1070TasksMax = infinity 20
1071
1072
1073###### cardinal %KGMT infinity
1074[Service]
1075MemoryMin = 123
1076MemoryMin = 12K
1077MemoryMin = 12M
1078MemoryMin = 12G
1079MemoryMin = 12T
1080MemoryMin = 12 G
1081MemoryMin = infinity
1082MemoryMin = 20%
1083## invalid values
1084MemoryMin = invalid
1085# invalid bytes suffix
1086MemoryMin = 12g
1087MemoryMin = 12H
1088MemoryMin = 12 E
1089MemoryMin = 12P
1090
1091
1092###### cardinal KGMT infinity
1093[Service]
1094MemorySwapMax = 123
1095MemorySwapMax = 12K
1096MemorySwapMax = 12M
1097MemorySwapMax = 12G
1098MemorySwapMax = 12T
1099MemorySwapMax = 12 G
1100MemorySwapMax = infinity
1101## invalid values
1102MemorySwapMax = invalid
1103MemorySwapMax = 20%
1104# invalid bytes suffix
1105MemorySwapMax = 12g
1106MemorySwapMax = 12H
1107MemorySwapMax = 12 E
1108MemorySwapMax = 12P
1109
1110
1111###### collect mode
1112[Unit]
1113CollectMode = inactive
1114CollectMode = inactive-or-failed
1115## invalid values
1116CollectMode = invalid
1117CollectMode = invalid inactive
1118# multiple values
1119CollectMode = inactive-or-failed inactive
1120
1121
1122###### condition needs update
1123[Unit]
1124ConditionNeedsUpdate = !/etc
1125ConditionNeedsUpdate = !/var
1126## invalid values
1127ConditionNeedsUpdate = /home
1128# multiple values
1129ConditionNeedsUpdate = /etc /var
1130
1131
1132###### condition user
1133[Unit]
1134ConditionUser = @system
1135ConditionUser = name1
1136ConditionUser = 1050
1137## invalid values
1138ConditionUser = name1.invalid
1139ConditionUser = -1050
1140# multiple values
1141ConditionUser = name1 name2
1142
1143
1144###### controller cg (control group controller)
1145[Unit]
1146AssertControlGroupController = blkio
1147AssertControlGroupController = cpu
1148AssertControlGroupController = cpuacct
1149AssertControlGroupController = devices
1150AssertControlGroupController = io
1151AssertControlGroupController = memory
1152AssertControlGroupController = v1
1153AssertControlGroupController = v2
1154## invalid values
1155AssertControlGroupController = invalid
1156AssertControlGroupController = bpf-firewall
1157# multiple values
1158AssertControlGroupController = cpu memory
1159
1160
1161###### controller list
1162[Service]
1163# single controller
1164DisableControllers = blkio
1165DisableControllers = bpf-devices
1166DisableControllers = bpf-firewall
1167DisableControllers = cpu
1168DisableControllers = cpuacct
1169DisableControllers = cpuset
1170DisableControllers = devices
1171DisableControllers = io
1172DisableControllers = memory
1173DisableControllers = pids
1174# multiple controllers
1175DisableControllers = cpu io \
1176  memory
1177## invalid values
1178DisableControllers = dev invalid
1179
1180
1181###### cpu affinity
1182[Service]
1183# either "numa" or any of the values for "cpu index list"
1184CPUAffinity = numa
1185CPUAffinity = 0 1, 2 , \
1186  3, 4-8 , 10 - 12
1187# since version 249 specifiers are supported
1188CPUAffinity = %I
1189## invalid values
1190CPUAffinity = numa-x
1191# no multiple "numa"
1192CPUAffinity = numa numa
1193# no CPU index list and "numa"
1194CPUAffinity = numa 0 1 2
1195CPUAffinity = 0 1 2 numa
1196
1197
1198###### cpu feature
1199[Unit]
1200ConditionCPUFeature = abm
1201ConditionCPUFeature = adx
1202ConditionCPUFeature = aes
1203ConditionCPUFeature = apic
1204ConditionCPUFeature = avx
1205ConditionCPUFeature = avx2
1206ConditionCPUFeature = bmi1
1207ConditionCPUFeature = bmi2
1208ConditionCPUFeature = clflush
1209ConditionCPUFeature = cmov
1210ConditionCPUFeature = constant_tsc
1211ConditionCPUFeature = cx16
1212ConditionCPUFeature = cx8
1213ConditionCPUFeature = de
1214ConditionCPUFeature = f16c
1215ConditionCPUFeature = fma3
1216ConditionCPUFeature = fpu
1217ConditionCPUFeature = fxsr
1218ConditionCPUFeature = ht
1219ConditionCPUFeature = lahf_lm
1220ConditionCPUFeature = lm
1221ConditionCPUFeature = mca
1222ConditionCPUFeature = mce
1223ConditionCPUFeature = mmx
1224ConditionCPUFeature = monitor
1225ConditionCPUFeature = movbe
1226ConditionCPUFeature = msr
1227ConditionCPUFeature = mtrr
1228ConditionCPUFeature = osxsave
1229ConditionCPUFeature = pae
1230ConditionCPUFeature = pat
1231ConditionCPUFeature = pclmul
1232ConditionCPUFeature = pge
1233ConditionCPUFeature = pni
1234ConditionCPUFeature = popcnt
1235ConditionCPUFeature = pse
1236ConditionCPUFeature = pse36
1237ConditionCPUFeature = rdrand
1238ConditionCPUFeature = rdseed
1239ConditionCPUFeature = rdtscp
1240ConditionCPUFeature = sep
1241ConditionCPUFeature = sha_ni
1242ConditionCPUFeature = sse
1243ConditionCPUFeature = sse2
1244ConditionCPUFeature = sse4_1
1245ConditionCPUFeature = sse4_2
1246ConditionCPUFeature = ssse3
1247ConditionCPUFeature = syscall
1248ConditionCPUFeature = tsc
1249ConditionCPUFeature = vme
1250ConditionCPUFeature = xsave
1251## invalid values
1252ConditionCPUFeature = invalid
1253# multiple values
1254ConditionCPUFeature = tsc mmx
1255
1256
1257###### cpu index list
1258[Service]
1259NUMAMask = 0 1 2
1260NUMAMask = 0,1, 2
1261# using ranges
1262NUMAMask = 0-2
1263NUMAMask = 0 - 2
1264NUMAMask = 0 1, 2 , \
1265  3, 4-8 ,
1266## invalid values
1267NUMAMask = 0 invalid 2, 3;4
1268NUMAMask = 0-a1
1269NUMAMask = numa
1270
1271
1272###### cpu scheduling policy
1273[Service]
1274CPUSchedulingPolicy = batch
1275CPUSchedulingPolicy = fifo
1276CPUSchedulingPolicy = idle
1277CPUSchedulingPolicy = other
1278CPUSchedulingPolicy = rr
1279## invalid values
1280CPUSchedulingPolicy = invalid
1281# multiple values
1282CPUSchedulingPolicy = batch fifo
1283
1284
1285###### cpu scheduling priority
1286[Service]
1287CPUSchedulingPriority = 12
1288CPUSchedulingPriority = 99
1289## invalid values
1290CPUSchedulingPriority = invalid
1291CPUSchedulingPriority = -12
1292CPUSchedulingPriority = 0.12
1293# out of range
1294CPUSchedulingPriority = 0
1295CPUSchedulingPriority = 100
1296# multiple values
1297CPUSchedulingPriority = 12 34
1298
1299
1300###### delegate
1301[Service]
1302# single boolean
1303Delegate = true
1304# single controller
1305Delegate = blkio
1306Delegate = bpf-devices
1307Delegate = bpf-firewall
1308Delegate = cpu
1309Delegate = cpuacct
1310Delegate = cpuset
1311Delegate = devices
1312Delegate = io
1313Delegate = memory
1314Delegate = pids
1315# multiple controllers
1316Delegate = cpu io \
1317  memory
1318## invalid values
1319Delegate = invalid
1320# multiple boolean values
1321Delegate = on off
1322
1323
1324###### device cardinal KMGT
1325[Service]
1326IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 123
1327IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12K
1328IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12M
1329IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12G
1330IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12T
1331IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12 G
1332IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 \
1333  10M
1334## invalid values
1335IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 20%
1336# invalid multiplier suffix
1337IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12g
1338IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12E
1339# no device
1340IOReadIOPSMax = 10
1341IOReadIOPSMax = 10M
1342
1343
1344###### device policy
1345[Service]
1346DevicePolicy = auto
1347DevicePolicy = closed
1348DevicePolicy = strict
1349## invalid values
1350DevicePolicy = invalid
1351# multiple values
1352DevicePolicy = auto closed
1353
1354
1355###### device time span
1356[Service]
1357IODeviceLatencyTargetSec = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 123
1358IODeviceLatencyTargetSec = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5s 20ms \
1359  100us
1360## invalid values
1361# no device
1362IODeviceLatencyTargetSec = 123
1363IODeviceLatencyTargetSec = 5s 20ms 100us
1364
1365
1366###### exec
1367[Service]
1368# specifier and environment variable
1369ExecStart = /some/cmd %u arg $var1 inside${var2}word ${var3} $var4
1370ExecStart = cmd1 %h arg1_1 $var1, cmd2 %u arg2_1 $var2_1\
1371  $var2_2
1372# escapes (not exactly the same as detected by HlCStringChar)
1373ExecStart = cmd \, \' \" \\ \a \b \f \n \r \s \t \v \x0A \012 \u1234 \U12abcdef
1374# prefix
1375ExecStart = @/some/cmd arg "@!+-:"
1376ExecStart = -/some/cmd-1 -option arg
1377ExecStart = :/some/cmd arg
1378ExecStart = +/some/cmd arg
1379ExecStart = !/some/cmd arg
1380ExecStart = !!/some/cmd arg
1381ExecStart = @:-!!/some/cmd arg
1382ExecStart = @!!-:/some/cmd arg
1383ExecStart = @:-+/some/cmd arg
1384## invalid values
1385# invalid prefix
1386ExecStart = @ /some/cmd arg
1387ExecStart = @ -/some/cmd arg
1388ExecStart = +!/some/cmd arg
1389ExecStart = !!!/some/cmd arg
1390ExecStart = @+@/some/cmd arg
1391ExecStart = @!!+/some/cmd arg
1392
1393
1394###### exit status
1395[Service]
1396SuccessExitStatus = 75
1397SuccessExitStatus = ADDRESS_FAMILIES
1398SuccessExitStatus = APPARMOR
1399SuccessExitStatus = CACHE_DIRECTORY
1400SuccessExitStatus = CANTCREAT
1401SuccessExitStatus = CAPABILITIES
1402SuccessExitStatus = CGROUP
1403SuccessExitStatus = CHDIR
1404SuccessExitStatus = CHOWN
1405SuccessExitStatus = CHROOT
1406SuccessExitStatus = CONFIG
1407SuccessExitStatus = CONFIGURATION_DIRECTORY
1408SuccessExitStatus = CONFIRM
1409SuccessExitStatus = CPUAFFINITY
1410SuccessExitStatus = CREDENTIALS
1411SuccessExitStatus = DATAERR
1412SuccessExitStatus = EXCEPTION
1413SuccessExitStatus = EXEC
1414SuccessExitStatus = FAILURE
1415SuccessExitStatus = FDS
1416SuccessExitStatus = GROUP
1417SuccessExitStatus = INVALIDARGUMENT
1418SuccessExitStatus = IOERR
1419SuccessExitStatus = IOPRIO
1420SuccessExitStatus = KEYRING
1421SuccessExitStatus = LIMITS
1422SuccessExitStatus = LOGS_DIRECTORY
1423SuccessExitStatus = MEMORY
1424SuccessExitStatus = NAMESPACE
1425SuccessExitStatus = NETWORK
1426SuccessExitStatus = NICE
1427SuccessExitStatus = NOHOST
1428SuccessExitStatus = NOINPUT
1429SuccessExitStatus = NOPERM
1430SuccessExitStatus = NOPERMISSION
1431SuccessExitStatus = NOTCONFIGURED
1432SuccessExitStatus = NOTIMPLEMENTED
1433SuccessExitStatus = NOTINSTALLED
1434SuccessExitStatus = NOTRUNNING
1435SuccessExitStatus = NOUSER
1436SuccessExitStatus = NO_NEW_PRIVILEGES
1437SuccessExitStatus = NUMA_POLICY
1438SuccessExitStatus = OOM_ADJUST
1439SuccessExitStatus = OSERR
1440SuccessExitStatus = OSFILE
1441SuccessExitStatus = PAM
1442SuccessExitStatus = PERSONALITY
1443SuccessExitStatus = PROTOCOL
1444SuccessExitStatus = RUNTIME_DIRECTORY
1445SuccessExitStatus = SECCOMP
1446SuccessExitStatus = SECUREBITS
1447SuccessExitStatus = SELINUX_CONTEXT
1448SuccessExitStatus = SETSCHEDULER
1449SuccessExitStatus = SETSID
1450SuccessExitStatus = SIGNAL_MASK
1451SuccessExitStatus = SMACK_PROCESS_LABEL
1452SuccessExitStatus = SOFTWARE
1453SuccessExitStatus = STATE_DIRECTORY
1454SuccessExitStatus = STDERR
1455SuccessExitStatus = STDIN
1456SuccessExitStatus = STDOUT
1457SuccessExitStatus = SUCCESS
1458SuccessExitStatus = TEMPFAIL
1459SuccessExitStatus = TIMERSLACK
1460SuccessExitStatus = UNAVAILABLE
1461SuccessExitStatus = USAGE
1462SuccessExitStatus = USER
1463# using signals (see values for context "signal" for a complete list of values)
1464SuccessExitStatus = SIGABRT
1465SuccessExitStatus = ADDRESS_FAMILIES 75 \
1466  23 SIGHUP
1467## invalid values
1468SuccessExitStatus = invalid
1469SuccessExitStatus = -23
1470
1471
1472###### failure mode
1473[Service]
1474TimeoutStartFailureMode = abort
1475TimeoutStartFailureMode = kill
1476TimeoutStartFailureMode = terminate
1477## invalid values
1478TimeoutStartFailureMode = invalid
1479# multiple values
1480TimeoutStartFailureMode = abort kill
1481
1482
1483###### firmware type
1484[Unit]
1485ConditionFirmware = uefi
1486ConditionFirmware = device-tree
1487ConditionFirmware = device-tree-compatible(some-device-tree)
1488ConditionFirmware = device-tree-compatible(  some-device-tree )
1489## invalid values
1490ConditionFirmware = invalid
1491ConditionFirmware = device-tree-invalid
1492# missing argument
1493ConditionFirmware = device-tree-compatible
1494ConditionFirmware = device-tree-compatible()
1495# multiple values
1496ConditionFirmware = uefi device-tree
1497
1498
1499###### fs type
1500# A selection of file system types to be used as `Type` in mount units.
1501[Mount]
1502Type = binfmt_misc
1503Type = btrfs
1504Type = configfs
1505Type = debugfs
1506Type = devtmpfs
1507Type = efivarfs
1508Type = exfat
1509Type = ext2
1510Type = ext3
1511Type = ext4
1512Type = f2fs
1513Type = fuse
1514Type = fusectl
1515Type = gfs2
1516Type = hugetlbfs
1517Type = iso9660
1518Type = jfs
1519Type = mqueue
1520Type = msdos
1521Type = nfs
1522Type = nilfs2
1523Type = ntfs
1524Type = ocfs2
1525Type = overlay
1526Type = proc
1527Type = reiserfs
1528Type = tmpfs
1529Type = tracefs
1530Type = udf
1531Type = vfat
1532Type = virtiofs
1533Type = xfs
1534## invalid values
1535Type = invalid
1536Type = invalid ext4
1537# multiple values
1538Type = btrfs ext4
1539
1540
1541###### file mode
1542[Automount]
1543DirectoryMode = 755
1544## invalid values
1545DirectoryMode = invalid
1546# need octal digits
1547DirectoryMode = 0758
1548DirectoryMode = 075A
1549# need 3 to 4 octal digits
1550DirectoryMode = 07
1551# multiple values
1552DirectoryMode = 0755 0755
1553
1554
1555###### group and user
1556[Service]
1557User = 1000
1558Group = 100
1559User = some-name
1560Group = some_name
1561User = _some-name-1
1562User = name1
1563# using specifiers
1564User = %i
1565User = name-%i
1566User = some-%i-name
1567User = %U-name
1568User = some-%i-name-%U
1569## invalid values
1570# no negative integers
1571User = -1000
1572# no float
1573User = 100.0
1574# no name with leading digit
1575User = 1name
1576# no name with leading hyphen
1577User = -name
1578# multiple values
1579User = 1000 1001
1580
1581
1582###### group list
1583[Service]
1584SupplementaryGroups = some-name %U some%iname \
1585  %Uname 1001 name%U
1586
1587
1588###### io scheduling class
1589[Service]
1590IOSchedulingClass = 0
1591IOSchedulingClass = 1
1592IOSchedulingClass = 2
1593IOSchedulingClass = 3
1594IOSchedulingClass = best-effort
1595IOSchedulingClass = idle
1596IOSchedulingClass = none
1597IOSchedulingClass = realtime
1598## invalid values
1599IOSchedulingClass = invalid
1600IOSchedulingClass = 4
1601IOSchedulingClass = 123
1602IOSchedulingClass = -1
1603# multiple values
1604IOSchedulingClass = 1 idle
1605IOSchedulingClass = idle none
1606
1607
1608###### ip address list
1609[Service]
1610IPAddressAllow = any
1611IPAddressAllow = localhost
1612IPAddressAllow = link-local
1613IPAddressDeny = multicast
1614IPAddressAllow = localhost \
1615  multicast
1616IPAddressAllow = 127.0.0.0/8 ::1/128 169.254.0.0/16 fe80::/64
1617## invalid values
1618IPAddressAllow = invalid
1619
1620
1621###### ip bind
1622[Socket]
1623BindIPv6Only = both
1624BindIPv6Only = default
1625BindIPv6Only = ipv6-only
1626## invalid values
1627BindIPv6Only = invalid
1628# multiple values
1629BindIPv6Only = both default
1630
1631
1632###### io scheduling priority
1633[Service]
1634IOSchedulingPriority = 0
1635IOSchedulingPriority = 1
1636IOSchedulingPriority = 2
1637IOSchedulingPriority = 3
1638IOSchedulingPriority = 4
1639IOSchedulingPriority = 5
1640IOSchedulingPriority = 6
1641IOSchedulingPriority = 7
1642## invalid values
1643IOSchedulingPriority = 8
1644IOSchedulingPriority = 123
1645IOSchedulingPriority = -1
1646# multiple values
1647IOSchedulingPriority = 0 3
1648
1649
1650###### ip tos (terms-of-service)
1651[Socket]
1652IPTOS = 15
1653IPTOS = low-cost
1654IPTOS = low-delay
1655IPTOS = reliability
1656IPTOS = throughput
1657## invalid values
1658IPTOS = invalid
1659# multiple values
1660IPTOS = 15 20
1661IPTOS = low-delay 15
1662
1663
1664###### keyring mode
1665[Service]
1666KeyringMode = inherit
1667KeyringMode = private
1668KeyringMode = shared
1669## invalid values
1670KeyringMode = invalid
1671# multiple values
1672KeyringMode = shared private
1673
1674
1675###### kill mode
1676[Service]
1677KillMode = control-group
1678KillMode = mixed
1679KillMode = none
1680KillMode = process
1681## invalid values
1682KillMode = invalid
1683# multiple values
1684KillMode = mixed process
1685
1686
1687###### limit bytes
1688[Service]
1689LimitFSIZE = 123
1690LimitFSIZE = 12K
1691LimitFSIZE = 12M
1692LimitFSIZE = 12G
1693LimitFSIZE = 12T
1694LimitFSIZE = 12P
1695LimitFSIZE = 12E
1696LimitFSIZE = 12 G
1697LimitFSIZE = 12G:24G
1698LimitFSIZE = 12 G:24 G
1699LimitFSIZE = 12 G: 24 G
1700LimitFSIZE = 12 G :24 G
1701LimitFSIZE = 12 G : 24 G
1702LimitFSIZE = infinity
1703## invalid values
1704LimitFSIZE = invalid
1705# invalid bytes suffix
1706LimitFSIZE = 12g
1707LimitFSIZE = 12H
1708
1709
1710###### limit nice level
1711[Service]
1712LimitNICE = -1
1713LimitNICE = -12
1714LimitNICE = -20
1715LimitNICE = +1
1716LimitNICE = +12
1717LimitNICE = +19
1718LimitNICE = 0
1719LimitNICE = 9
1720LimitNICE = 12
1721LimitNICE = 23
1722LimitNICE = 34
1723LimitNICE = 40
1724LimitNICE = -10:+10
1725LimitNICE = 20:30
1726LimitNICE = infinity
1727## invalid values
1728LimitNICE = invalid
1729LimitNICE = 0.2
1730LimitNICE = 20 : infinity
1731LimitNICE = infinity : 20
1732# out of range
1733LimitNICE = -21
1734LimitNICE = -123
1735LimitNICE = +20
1736LimitNICE = +123
1737LimitNICE = 41
1738LimitNICE = 123
1739
1740
1741###### limit number
1742[Service]
1743LimitNOFILE = 123
1744LimitNOFILE = 123:321
1745LimitNOFILE = infinity
1746## invalid values
1747LimitNOFILE = invalid
1748# negative values
1749LimitNOFILE = -123
1750
1751
1752###### limit time span
1753[Service]
1754LimitCPU = 15s 10us : 20s 5ms
1755LimitCPU = infinity
1756## invalid values
1757# only a single infinity
1758LimitCPU = infinity : infinity
1759LimitCPU = infinity : 10s 15ms
1760LimitCPU = 10s 15ms : infinity
1761
1762
1763###### log facility
1764[Service]
1765SyslogFacility = auth
1766SyslogFacility = authpriv
1767SyslogFacility = cron
1768SyslogFacility = daemon
1769SyslogFacility = ftp
1770SyslogFacility = kern
1771SyslogFacility = local0
1772SyslogFacility = local1
1773SyslogFacility = local2
1774SyslogFacility = local3
1775SyslogFacility = local4
1776SyslogFacility = local5
1777SyslogFacility = local6
1778SyslogFacility = local7
1779SyslogFacility = lpr
1780SyslogFacility = mail
1781SyslogFacility = news
1782SyslogFacility = syslog
1783SyslogFacility = user
1784SyslogFacility = uucp
1785## invalid values
1786SyslogFacility = invalid
1787# multiple values
1788SyslogFacility = cron daemon
1789
1790
1791###### log level
1792[Service]
1793LogLevelMax = alert
1794LogLevelMax = crit
1795LogLevelMax = debug
1796LogLevelMax = emerg
1797LogLevelMax = err
1798LogLevelMax = info
1799LogLevelMax = notice
1800LogLevelMax = warning
1801## invalid values
1802LogLevelMax = invalid
1803# multiple values
1804LogLevelMax = info notice
1805
1806
1807###### memory mapping
1808[Service]
1809CoredumpFilter = all
1810CoredumpFilter = default
1811CoredumpFilter = private-anonymous
1812CoredumpFilter = shared-anonymous
1813CoredumpFilter = private-file-backed
1814CoredumpFilter = shared-file-backed
1815CoredumpFilter = elf-headers
1816CoredumpFilter = private-huge
1817CoredumpFilter = shared-huge
1818CoredumpFilter = private-dax
1819CoredumpFilter = shared-dax
1820# multiple values
1821CoredumpFilter = private-file-backed shared-dax
1822## invalid values
1823CoredumpFilter = invalid
1824CoredumpFilter = private-file-backed invalid elf-headers
1825CoredumpFilter = invalid shared-dax
1826# only spaces as separator
1827CoredumpFilter = private-file-backed, shared-dax
1828
1829
1830###### mount flag
1831[Service]
1832MountFlags = private
1833MountFlags = shared
1834MountFlags = slave
1835## invalid values
1836MountFlags = invalid
1837# multiple values
1838MountFlags = shared slave
1839
1840
1841###### nice level
1842[Service]
1843Nice = -1
1844Nice = -12
1845Nice = -20
1846Nice = +1
1847Nice = +12
1848Nice = +19
1849Nice = 0
1850Nice = 12
1851Nice = 19
1852## invalid values
1853Nice = invalid
1854Nice = 0.2
1855# out of range
1856Nice = -21
1857Nice = -123
1858Nice = +20
1859Nice = +123
1860Nice = 20
1861Nice = 30
1862Nice = 123
1863# multiple values
1864Nice = 12 34
1865
1866
1867###### notify access
1868[Service]
1869NotifyAccess = all
1870NotifyAccess = exec
1871NotifyAccess = main
1872NotifyAccess = none
1873## invalid values
1874NotifyAccess = invalid
1875# multiple values
1876NotifyAccess = exec none
1877
1878
1879###### numa mask
1880[Service]
1881NUMAMask = all
1882NUMAMask = 1,2,3-8
1883## invalid values
1884NUMAMask = invalid
1885# both all and cpu index list
1886NUMAMask = all, 1,2,3-8
1887NUMAMask = 1,2,3-8, all
1888
1889
1890###### numa policy
1891[Service]
1892NUMAPolicy = bind
1893NUMAPolicy = default
1894NUMAPolicy = interleave
1895NUMAPolicy = local
1896NUMAPolicy = preferred
1897## invalid values
1898NUMAPolicy = invalid
1899# multiple values
1900NUMAPolicy = interleave local
1901
1902
1903###### on failure job mode
1904[Unit]
1905OnFailureJobMode = fail
1906OnFailureJobMode = flush
1907OnFailureJobMode = ignore-dependencies
1908OnFailureJobMode = ignore-requirements
1909OnFailureJobMode = isolate
1910OnFailureJobMode = replace
1911OnFailureJobMode = replace-irreversibly
1912## invalid values
1913OnFailureJobMode = invalid
1914OnFailureJobMode = invalid fail
1915# multiple values
1916OnFailureJobMode = replace fail
1917
1918
1919###### oom behavior (out-of-memory killer behavior)
1920[Service]
1921ManagedOOMSwap = auto
1922ManagedOOMSwap = kill
1923## invalid values
1924ManagedOOMSwap = invalid
1925# multiple values
1926ManagedOOMSwap = auto kill
1927
1928
1929###### oom preference (out-of-memory killer preference)
1930[Service]
1931ManagedOOMPreference = avoid
1932ManagedOOMPreference = none
1933ManagedOOMPreference = omit
1934## invalid values
1935ManagedOOMPreference = invalid
1936# multiple values
1937ManagedOOMPreference = avoid none
1938
1939
1940###### oom policy (out-of-memory killer policy)
1941[Service]
1942OOMPolicy = continue
1943OOMPolicy = kill
1944OOMPolicy = stop
1945## invalid values
1946OOMPolicy = invalid
1947# multiple values
1948OOMPolicy = kill stop
1949
1950
1951###### oom score adjust (out-of-memory killer score adjustment)
1952[Service]
1953OOMScoreAdjust = -1000
1954OOMScoreAdjust = -123
1955OOMScoreAdjust = 0
1956OOMScoreAdjust = 321
1957OOMScoreAdjust = +321
1958OOMScoreAdjust = +1000
1959OOMScoreAdjust = 1000
1960## invalid values
1961OOMScoreAdjust = invalid
1962OOMScoreAdjust = 1.2
1963# out of range
1964OOMScoreAdjust = -1001
1965OOMScoreAdjust = +1001
1966OOMScoreAdjust = 1001
1967
1968
1969###### percent
1970[Slice]
1971CPUQuota = 0.1%
1972CPUQuota = 12 %
1973CPUQuota = 123.4%
1974## invalid values
1975CPUQuota = 10
1976CPUQuota = invalid
1977# multiple values
1978CPUQuota = 10% 20%
1979
1980
1981###### personality
1982[Service]
1983Personality = ppc
1984Personality = ppc-le
1985Personality = ppc64
1986Personality = ppc64-le
1987Personality = s390
1988Personality = s390x
1989Personality = x86
1990Personality = x86-64
1991## invalid values
1992Personality = invalid
1993# multiple values
1994Personality = x86-64 s390x
1995
1996
1997###### proc subset
1998[Service]
1999ProcSubset = all
2000ProcSubset = pid
2001## invalid values
2002ProcSubset = invalid
2003# multiple values
2004ProcSubset = all pid
2005
2006
2007###### protect home
2008[Service]
2009ProtectHome = read-only
2010ProtectHome = tmpfs
2011ProtectHome = true
2012ProtectHome = false
2013ProtectHome = yes
2014## invalid values
2015ProtectHome = invalid
2016# multiple values
2017ProtectHome = tmpfs true
2018
2019
2020###### protect system
2021[Service]
2022ProtectSystem = full
2023ProtectSystem = strict
2024ProtectSystem = true
2025ProtectSystem = false
2026ProtectSystem = yes
2027ProtectSystem = no
2028## invalid values
2029ProtectSystem = invalid
2030# multiple values
2031ProtectSystem = full true
2032
2033
2034###### restart
2035[Service]
2036Restart = always
2037Restart = no
2038Restart = on-abnormal
2039Restart = on-abort
2040Restart = on-failure
2041Restart = on-success
2042Restart = on-watchdog
2043## invalid values
2044Restart = invalid
2045# multiple values
2046Restart = no on-abort
2047
2048
2049###### runtime directory preserve
2050[Service]
2051RuntimeDirectoryPreserve = restart
2052RuntimeDirectoryPreserve = true
2053RuntimeDirectoryPreserve = false
2054RuntimeDirectoryPreserve = yes
2055RuntimeDirectoryPreserve = no
2056## invalid values
2057RuntimeDirectoryPreserve = invalid
2058# multiple values
2059RuntimeDirectoryPreserve = restart no
2060
2061
2062###### secure bits list
2063[Service]
2064SecureBits = keep-caps
2065SecureBits = keep-caps-locked
2066SecureBits = no-setuid-fixup
2067SecureBits = no-setuid-fixup-locked
2068SecureBits = noroot
2069SecureBits = noroot-locked
2070SecureBits = keep-caps noroot-locked \
2071  no-setuid-fixup
2072## invalid values
2073SecureBits = invalid
2074
2075
2076###### security
2077[Unit]
2078ConditionSecurity = apparmor
2079ConditionSecurity = audit
2080ConditionSecurity = ima
2081ConditionSecurity = selinux
2082ConditionSecurity = smack
2083ConditionSecurity = tomoyo
2084ConditionSecurity = tpm2
2085ConditionSecurity = uefi-secureboot
2086## invalid values
2087ConditionSecurity = invalid
2088# multiple values
2089ConditionSecurity = invalid selinux
2090ConditionSecurity = apparmor selinux
2091
2092
2093###### service type
2094[Service]
2095Type = dbus
2096Type = exec
2097Type = forking
2098Type = idle
2099Type = notify
2100Type = oneshot
2101Type = simple
2102## invalid values
2103Type = invalid
2104# multiple values
2105Type = exec forking
2106
2107
2108###### signal
2109[Service]
2110KillSignal = SIGABRT
2111KillSignal = SIGALRM
2112KillSignal = SIGBUS
2113KillSignal = SIGCHLD
2114KillSignal = SIGCLD
2115KillSignal = SIGCONT
2116KillSignal = SIGEMT
2117KillSignal = SIGFPE
2118KillSignal = SIGHUP
2119KillSignal = SIGILL
2120KillSignal = SIGINFO
2121KillSignal = SIGINT
2122KillSignal = SIGIO
2123KillSignal = SIGIOT
2124KillSignal = SIGKILL
2125KillSignal = SIGLOST
2126KillSignal = SIGNAL
2127KillSignal = SIGPENDING
2128KillSignal = SIGPIPE
2129KillSignal = SIGPOLL
2130KillSignal = SIGPROF
2131KillSignal = SIGPWR
2132KillSignal = SIGQUEUE_MAX
2133KillSignal = SIGQUIT
2134KillSignal = SIGRTMAX
2135KillSignal = SIGRTMIN
2136KillSignal = SIGSEGV
2137KillSignal = SIGSTKFLT
2138KillSignal = SIGSTOP
2139KillSignal = SIGSYS
2140KillSignal = SIGTERM
2141KillSignal = SIGTRAP
2142KillSignal = SIGTSTP
2143KillSignal = SIGTTIN
2144KillSignal = SIGTTOU
2145KillSignal = SIGUNUSED
2146KillSignal = SIGURG
2147KillSignal = SIGUSR1
2148KillSignal = SIGUSR2
2149KillSignal = SIGVTALRM
2150KillSignal = SIGWINCH
2151KillSignal = SIGXCPU
2152KillSignal = SIGXFSZ
2153KillSignal = SIG_MAX
2154## invalid values
2155KillSignal = SIG_INVALID
2156
2157
2158###### socket bind rule
2159[Service]
2160SocketBindAllow = any
2161SocketBindAllow = ipv4:
2162SocketBindAllow = ipv4:tcp:
2163SocketBindAllow = ipv4:tcp:12345
2164SocketBindAllow = ipv4:tcp:1-123
2165SocketBindAllow = ipv6:udp:1-123
2166SocketBindAllow = ipv6: udp:  1  -  123
2167SocketBindAllow = tcp:
2168SocketBindAllow = 12345
2169SocketBindAllow = 123-456
2170## invalid values
2171SocketBindAllow = ipv4 :
2172SocketBindAllow = ipv5:tcp:
2173SocketBindAllow = ipv4:udcp:
2174SocketBindAllow = tcp:ipv4
2175SocketBindAllow = ipv4:tcp: 12345
2176# multiple values
2177SocketBindAllow = any ipv4:
2178
2179
2180###### socket protocol
2181[Socket]
2182SocketProtocol = sctp
2183SocketProtocol = udplite
2184## invalid values
2185SocketProtocol = invalid
2186# multiple values
2187SocketProtocol = sctp udplite
2188
2189
2190###### standard input
2191[Service]
2192StandardInput = data
2193StandardInput = fd
2194StandardInput = fd:some_name
2195StandardInput = file:/some/absolute/path
2196StandardInput = null
2197StandardInput = socket
2198StandardInput = tty
2199StandardInput = tty-fail
2200StandardInput = tty-force
2201## invalid values
2202StandardInput = invalid
2203# multiple values
2204StandardInput = null tty
2205StandardInput = file:/some/absolute/path socket
2206# no absolute path immediately after `file:`
2207StandardInput = file:
2208StandardInput = file:some//path
2209StandardInput = file: /some/absolute/path
2210
2211
2212###### standard output
2213[Service]
2214# NOTE: Option StandardError accepts the same values.
2215StandardOutput = append:/some/absolute/path
2216StandardOutput = fd
2217StandardOutput = fd:some_name
2218StandardOutput = file:/some/absolute/path
2219StandardOutput = inherit
2220StandardOutput = journal
2221StandardOutput = journal+console
2222StandardOutput = kmsg
2223StandardOutput = kmsg+console
2224StandardOutput = null
2225StandardOutput = socket
2226StandardOutput = truncate:/some/absolute/path
2227StandardOutput = tty
2228## invalid values
2229StandardOutput = invalid
2230StandardOutput = syslog
2231# no absolute path immediately after append:, file:
2232StandardOutput = append:
2233StandardOutput = append:some/relative/path
2234StandardOutput = append: /some/relative/path
2235StandardOutput = file:
2236StandardOutput = file:some/relative/path
2237StandardOutput = file: /some/relative/path
2238# multiple values
2239StandardOutput = null tty
2240StandardOutput = file:/some/absolute/path socket
2241
2242
2243###### system call architecture
2244[Service]
2245SystemCallArchitectures = mips64-le-n32
2246SystemCallArchitectures = mips64-n32
2247SystemCallArchitectures = native
2248SystemCallArchitectures = x32
2249# all values from "architecture" are also valid
2250SystemCallArchitectures = alpha \
2251  mips sparc
2252## invalid values
2253SystemCallArchitectures = invalid
2254
2255
2256###### system call errno
2257[Service]
2258SystemCallErrorNumber = kill
2259SystemCallErrorNumber = log
2260# from man errno(3)
2261SystemCallErrorNumber = EACCES
2262SystemCallErrorNumber = EADDRINUSE
2263SystemCallErrorNumber = EADDRNOTAVAIL
2264SystemCallErrorNumber = EAFNOSUPPORT
2265SystemCallErrorNumber = EAGAIN
2266SystemCallErrorNumber = EALREADY
2267SystemCallErrorNumber = EBADE
2268SystemCallErrorNumber = EBADF
2269SystemCallErrorNumber = EBADFD
2270SystemCallErrorNumber = EBADMSG
2271SystemCallErrorNumber = EBADR
2272SystemCallErrorNumber = EBADRQC
2273SystemCallErrorNumber = EBADSLT
2274SystemCallErrorNumber = EBUSY
2275SystemCallErrorNumber = ECANCELED
2276SystemCallErrorNumber = ECHILD
2277SystemCallErrorNumber = ECHRNG
2278SystemCallErrorNumber = ECOMM
2279SystemCallErrorNumber = ECONNABORTED
2280SystemCallErrorNumber = ECONNREFUSED
2281SystemCallErrorNumber = ECONNRESET
2282SystemCallErrorNumber = EDEADLK
2283SystemCallErrorNumber = EDEADLOCK
2284SystemCallErrorNumber = EDESTADDRREQ
2285SystemCallErrorNumber = EDOM
2286SystemCallErrorNumber = EDQUOT
2287SystemCallErrorNumber = EEXIST
2288SystemCallErrorNumber = EFAULT
2289SystemCallErrorNumber = EFBIG
2290SystemCallErrorNumber = EHOSTDOWN
2291SystemCallErrorNumber = EHOSTUNREACH
2292SystemCallErrorNumber = EHWPOISON
2293SystemCallErrorNumber = EIDRM
2294SystemCallErrorNumber = EILSEQ
2295SystemCallErrorNumber = EINPROGRESS
2296SystemCallErrorNumber = EINTR
2297SystemCallErrorNumber = EINVAL
2298SystemCallErrorNumber = EIO
2299SystemCallErrorNumber = EISCONN
2300SystemCallErrorNumber = EISDIR
2301SystemCallErrorNumber = EISNAM
2302SystemCallErrorNumber = EKEYEXPIRED
2303SystemCallErrorNumber = EKEYREJECTED
2304SystemCallErrorNumber = EKEYREVOKED
2305SystemCallErrorNumber = EL2HLT
2306SystemCallErrorNumber = EL2NSYNC
2307SystemCallErrorNumber = EL3HLT
2308SystemCallErrorNumber = EL3RST
2309SystemCallErrorNumber = ELIBACC
2310SystemCallErrorNumber = ELIBBAD
2311SystemCallErrorNumber = ELIBEXEC
2312SystemCallErrorNumber = ELIBMAX
2313SystemCallErrorNumber = ELIBSCN
2314SystemCallErrorNumber = ELNRANGE
2315SystemCallErrorNumber = ELOOP
2316SystemCallErrorNumber = EMEDIUMTYPE
2317SystemCallErrorNumber = EMFILE
2318SystemCallErrorNumber = EMLINK
2319SystemCallErrorNumber = EMSGSIZE
2320SystemCallErrorNumber = EMULTIHOP
2321SystemCallErrorNumber = ENAMETOOLONG
2322SystemCallErrorNumber = ENETDOWN
2323SystemCallErrorNumber = ENETRESET
2324SystemCallErrorNumber = ENETUNREACH
2325SystemCallErrorNumber = ENFILE
2326SystemCallErrorNumber = ENOANO
2327SystemCallErrorNumber = ENOBUFS
2328SystemCallErrorNumber = ENODATA
2329SystemCallErrorNumber = ENODEV
2330SystemCallErrorNumber = ENOENT
2331SystemCallErrorNumber = ENOEXEC
2332SystemCallErrorNumber = ENOKEY
2333SystemCallErrorNumber = ENOLCK
2334SystemCallErrorNumber = ENOLINK
2335SystemCallErrorNumber = ENOMEDIUM
2336SystemCallErrorNumber = ENOMEM
2337SystemCallErrorNumber = ENOMSG
2338SystemCallErrorNumber = ENONET
2339SystemCallErrorNumber = ENOPKG
2340SystemCallErrorNumber = ENOPROTOOPT
2341SystemCallErrorNumber = ENOSPC
2342SystemCallErrorNumber = ENOSR
2343SystemCallErrorNumber = ENOSTR
2344SystemCallErrorNumber = ENOSYS
2345SystemCallErrorNumber = ENOTBLK
2346SystemCallErrorNumber = ENOTCONN
2347SystemCallErrorNumber = ENOTDIR
2348SystemCallErrorNumber = ENOTEMPTY
2349SystemCallErrorNumber = ENOTRECOVERABLE
2350SystemCallErrorNumber = ENOTSOCK
2351SystemCallErrorNumber = ENOTSUP
2352SystemCallErrorNumber = ENOTTY
2353SystemCallErrorNumber = ENOTUNIQ
2354SystemCallErrorNumber = ENXIO
2355SystemCallErrorNumber = EOPNOTSUPP
2356SystemCallErrorNumber = EOVERFLOW
2357SystemCallErrorNumber = EOWNERDEAD
2358SystemCallErrorNumber = EPERM
2359SystemCallErrorNumber = EPFNOSUPPORT
2360SystemCallErrorNumber = EPIPE
2361SystemCallErrorNumber = EPROTO
2362SystemCallErrorNumber = EPROTONOSUPPORT
2363SystemCallErrorNumber = EPROTOTYPE
2364SystemCallErrorNumber = ERANGE
2365SystemCallErrorNumber = EREMCHG
2366SystemCallErrorNumber = EREMOTE
2367SystemCallErrorNumber = EREMOTEIO
2368SystemCallErrorNumber = ERESTART
2369SystemCallErrorNumber = ERFKILL
2370SystemCallErrorNumber = EROFS
2371SystemCallErrorNumber = ESHUTDOWN
2372SystemCallErrorNumber = ESOCKTNOSUPPORT
2373SystemCallErrorNumber = ESPIPE
2374SystemCallErrorNumber = ESRCH
2375SystemCallErrorNumber = ESTALE
2376SystemCallErrorNumber = ESTRPIPE
2377SystemCallErrorNumber = ETIME
2378SystemCallErrorNumber = ETIMEDOUT
2379SystemCallErrorNumber = ETOOMANYREFS
2380SystemCallErrorNumber = ETXTBSY
2381SystemCallErrorNumber = EUCLEAN
2382SystemCallErrorNumber = EUNATCH
2383SystemCallErrorNumber = EUSERS
2384SystemCallErrorNumber = EWOULDBLOCK
2385SystemCallErrorNumber = EXDEV
2386SystemCallErrorNumber = EXFULL
2387SystemCallErrorNumber = 1
2388SystemCallErrorNumber = 12
2389SystemCallErrorNumber = 123
2390SystemCallErrorNumber = 1234
2391SystemCallErrorNumber = 2
2392SystemCallErrorNumber = 23
2393SystemCallErrorNumber = 234
2394SystemCallErrorNumber = 2345
2395SystemCallErrorNumber = 3
2396SystemCallErrorNumber = 34
2397SystemCallErrorNumber = 345
2398SystemCallErrorNumber = 3456
2399SystemCallErrorNumber = 3999
2400SystemCallErrorNumber = 4000
2401SystemCallErrorNumber = 4009
2402SystemCallErrorNumber = 4019
2403SystemCallErrorNumber = 4089
2404SystemCallErrorNumber = 4095
2405## invalid values
2406SystemCallErrorNumber = invalid
2407SystemCallErrorNumber = -12
2408SystemCallErrorNumber = 0.12
2409# out of range
2410SystemCallErrorNumber = 0
2411SystemCallErrorNumber = 4096
2412SystemCallErrorNumber = 5000
2413# multiple values
2414SystemCallErrorNumber = ESPIPE EUCLEAN
2415SystemCallErrorNumber = 123 EUCLEAN
2416
2417
2418###### time span
2419[Timer]
2420# without unit
2421OnBootSec = 15
2422# micro second
2423OnBootSec = 123 usec
2424OnBootSec = 123us
2425OnBootSec = 123 µs
2426# milli second
2427OnBootSec = 123 msec
2428OnBootSec = 123ms
2429# second
2430OnBootSec = 74 s
2431OnBootSec = 2sec
2432OnBootSec = 12 second
2433OnBootSec = 1 seconds
2434OnBootSec = 342 m
2435OnBootSec = 2min
2436OnBootSec = 7 minute
2437OnBootSec = 1 minutes
2438OnBootSec = 2 h
2439OnBootSec = 48   hr
2440OnBootSec = 2hour
2441OnBootSec = 2hours
2442OnBootSec = 2 d
2443OnBootSec = 1 day
2444OnBootSec = 7  days
2445OnBootSec = 2 w
2446OnBootSec = 123 week
2447OnBootSec = 0 weeks
2448OnBootSec = 12 M
2449OnBootSec = 7 month
2450OnBootSec = 1 months
2451OnBootSec = 1y
2452OnBootSec = 123year
2453OnBootSec = 12 years
2454OnBootSec = 55s500ms
2455OnBootSec = 300ms20s 5day
2456OnBootSec = 123 5 days 1m 12 1sec 123 \
2457  23 msec 13 1us
2458# multiple hours
2459OnBootSec = 7hr 2hr \
2460  1d 2w
2461## invalid values
2462# mi is invalid
2463OnBootSec = 1mi
2464# hs is invalid
2465OnBootSec = 2hs
2466# ds is invalid
2467OnBootSec = 7 ds 1y
2468# unit without amount
2469OnBootSec = 12 min sec
2470OnBootSec = min 1 sec
2471# invalid unit
2472OnBootSec = 12foo 1 bar
2473
2474
2475###### timeout
2476# all values from time span are valid
2477[Unit]
2478JobTimeoutSec = 0
2479JobTimeoutSec = 12345
2480JobTimeoutSec = 123 5 days 1m 12 1sec 123\
2481  23 msec 13 1us
2482JobTimeoutSec = infinity
2483## invalid values
2484JobTimeoutSec = invalid
2485JobTimeoutSec = inf
2486JobTimeoutSec = -10
2487JobTimeoutSec = 0.235
2488
2489
2490###### timestamping
2491[Socket]
2492Timestamping = ns
2493Timestamping = nsec
2494Timestamping = off
2495Timestamping = us
2496Timestamping = usec
2497Timestamping = µs
2498## invalid values
2499Timestamping = nanosec
2500# multiple values
2501Timestamping = nsec off
2502
2503
2504###### unit
2505[Path]
2506#### names
2507Unit = some-name.service
2508Unit = some.name.service
2509Unit = some:name.service
2510Unit = some@.service
2511Unit = some@instance.service
2512Unit = some@other-instance.service
2513Unit = some@other.instance.service
2514Unit = some@other:instance.service
2515Unit = some@other@instance.service
2516Unit = some@other%iinstance.service
2517Unit = systemd-fsck@dev-nvme0n1p2.service
2518Unit = some@%i.service
2519Unit = dev-disk-by\x2duuid-5af23b\x2dfde6\x2d424e\x2da1bb\x2de88bc.swap
2520## invalid names
2521# \x2x is an invalid escape as 2x is no hex number
2522Unit = dev-disk-by\x2xuuid-5af23b\x2dfde6\x2d424e\x2da1bb\x2de88bc.swap
2523#### extensions
2524Unit = some.automount
2525Unit = some.device
2526Unit = some.mount
2527Unit = some.service
2528Unit = some.socket
2529Unit = some.slice
2530Unit = some.swap
2531Unit = some.target
2532## invalid extension
2533Unit = some.invalid
2534# incomplete unit, missing extension
2535Unit = some.
2536# multiple values
2537Unit = some.service some-other.service
2538Unit = some.service.service \
2539  some.other.service.service
2540
2541
2542###### unit list
2543[Unit]
2544#### names
2545After = some.service.service \
2546  some.other.service.service \
2547  some@instance.service \
2548  some@%i.service
2549## invalid values
2550# incomplete unit, missing extension
2551After = some. \
2552  some.service \
2553  some-other.service
2554
2555
2556###### unit list socket
2557[Service]
2558Sockets = some.socket some@instance.socket
2559## invalid values
2560Sockets = some.service
2561Sockets = some.service some.socket
2562
2563
2564###### unit service
2565[Socket]
2566Service = some.service
2567Service = some@instance.service
2568## invalid values
2569Service = some.invalid
2570# other unit types
2571Service = some.socket
2572Service = some.target
2573# multiple values
2574Service = some.service other.service
2575
2576
2577###### unit slice
2578[Service]
2579Slice = some.slice
2580Slice = some@instance.slice
2581## invalid values
2582# other unit types
2583Slice = some.service
2584Slice = some.target
2585# multiple values
2586Slice = some.slice other.slice
2587
2588
2589###### utmp mode
2590[Service]
2591UtmpMode = init
2592UtmpMode = login
2593UtmpMode = user
2594## invalid values
2595UtmpMode = invalid
2596# multiple values
2597UtmpMode = login user
2598
2599
2600###### variable assignments
2601[Service]
2602Environment = DISPLAY=:%i
2603Environment = XAUTHORITY=%t/Xauthority.%i var1=15 \
2604  "var2=value with spaces" EMPTY=
2605Environment = XDG_VTNR=vt%i
2606LogExtraFields = NAME=VALUE
2607
2608
2609###### virtualization
2610[Unit]
2611ConditionVirtualization = acrn
2612ConditionVirtualization = bhyve
2613ConditionVirtualization = bochs
2614ConditionVirtualization = docker
2615ConditionVirtualization = kvm
2616ConditionVirtualization = lxc
2617ConditionVirtualization = lxc-libvirt
2618ConditionVirtualization = microsoft
2619ConditionVirtualization = openvz
2620ConditionVirtualization = oracle
2621ConditionVirtualization = parallels
2622ConditionVirtualization = qemu
2623ConditionVirtualization = qnx
2624ConditionVirtualization = rkt
2625ConditionVirtualization = systemd-nspawn
2626ConditionVirtualization = uml
2627ConditionVirtualization = vmware
2628ConditionVirtualization = wsl
2629ConditionVirtualization = xen
2630ConditionVirtualization = zvm
2631# using boolean
2632ConditionVirtualization = true
2633# using generic type
2634ConditionVirtualization = container
2635ConditionVirtualization = vm
2636# private users
2637ConditionVirtualization = private-users
2638# negated
2639ConditionVirtualization = !vmware
2640## invalid values
2641ConditionVirtualization = invalid
2642ConditionVirtualization = invalid vmware
2643# multiple values
2644ConditionVirtualization = xen vmware
2645
2646
2647###### weight
2648[Slice]
2649# integer 1..10000
2650CPUWeight = 1
2651CPUWeight = 12
2652CPUWeight = 123
2653CPUWeight = 1234
2654CPUWeight = 1234
2655CPUWeight = 10000
2656## invalid values
2657CPUWeight = -1
2658CPUWeight = 0
2659CPUWeight = 10001
2660CPUWeight = 12345
2661CPUWeight = 12.3
2662CPUWeight = invalid
2663# multiple values
2664CPUWeight = 1 10000
2665
2666
2667###### working directory
2668[Service]
2669WorkingDirectory = ~
2670WorkingDirectory = - ~
2671WorkingDirectory = %h
2672WorkingDirectory = /some/absolute/path
2673WorkingDirectory = -/some/absolute-path
2674WorkingDirectory = - /some/absolute/path
2675## invalid values
2676# using `-` without a path
2677WorkingDirectory = -
2678# multiple paths
2679WorkingDirectory = ~ /some/absolute/path
2680WorkingDirectory = /some/absolute/path ~
2681WorkingDirectory = /some/absolute/path /some/other/path
2682WorkingDirectory = - - /some/absolute/path
2683