# WARNING : This file is NOT a valid systemd service. # It was created to demonstrate/test KDE syntax highlighting. # It includes invalid sections, option names and option values. ; NOTE: Alerts in comments are supported. [Automount] Where = /the/mount/directory ExtraOptions = some,extra, mount , options, %I DirectoryMode = 0755 TimeoutIdleSec = 5min 5s [Install] Alias = some.service some.invalid some_%b.service WantedBy = some.service some.socket some.invalid RequiredBy = some.service some.socket some.invalid UpheldBy = some.service some.socket some.invalid Also = some.service some.socket some.invalid DefaultInstance = id [Mount] What = /dev/disk/by-uuid/444c-0d9d-411e-a973-015b31acaa Where = /the/mount/directory Type = btrfs Options = subvol=some_name,compress=lzo,noatime,noauto,nodev,nosuid SloppyOptions = on LazyUnmount = true ReadWriteOnly = true ForceUnmount = yes DirectoryMode = 0700 TimeoutSec = 5 m 20 s # see [Service] for options from systemd.exec and systemd.kill [Path] PathExists = /some/absolute/path PathExistsGlob = /some/g[lo]b* PathChanged = /some/absolute/path PathModified = /some/absolute/path DirectoryNotEmpty = /some/absolute/path Unit =<EMAIL_ADDRESS>MakeDirectory = yes DirectoryMode = 0700 TriggerLimitIntervalSec = 1min 10sec TriggerLimitBurst = 15 [Service] ## from systemd.service Type = exec RemainAfterExit = false GuessMainPID = no PIDFile = some/path BusName = some.name ExecStart = /usr/bin/Xorg ${DISPLAY} ${XDG_VTNR} \ -logfile %t/X.%i.log \ -nolisten tcp \ -quiet ExecStartPre = @/bin/start/pre some args ExecStartPost = -cmd arg, @cmd2 name -o \x0A ExecCondition = /bin/exec/condition ExecReload = /bin/exec/reload ExecStop = /bin/kill -SIGABRT $MAINPID ExecStopPost = -:!!/bin/stop/post RestartSec = 15 RestartSteps = 2 RestartMaxDelaySec = 150ms TimeoutStartSec = 5s 100ms TimeoutStopSec = infinity TimeoutAbortSec = 15 TimeoutSec = 10 TimeoutStartFailureMode = abort TimeoutStopFailureMode = kill RuntimeMaxSec = 1min 20 seconds RuntimeRandomizedExtraSec = 12 WatchdogSec = 90 Restart = on-watchdog RestartMode = direct SuccessExitStatus = PROTOCOL RUNTIME_DIRECTORY \ SECCOMP 15 23 SIGUSR1 SIGXCPU RestartPreventExitStatus = 15 23 SIGUSR1 \ SIGXCPU RestartForceExitStatus = SIGQUIT SIGSTOP 99 RootDirectoryStartOnly = false NonBlocking = false NotifyAccess = exec Sockets = some.socket \ some-other.socket FileDescriptorStoreMax = 5 FileDescriptorStorePreserve = yes USBFunctionDescriptors = /some/absolute/path USBFunctionStrings = /some/absolute/path OOMPolicy = stop OpenFile = /some/path:fd-name:graceful,read-only ReloadSignal = SIGUSR1 ## from systemd.exec ExecPaths = some/path some/other/path ExtensionImages = /source/path ExtensionDirectories = /source/path IPCNamespacePath = /some/absolute/path MemoryKSM = false NoExecPaths = some/path some/other/path PrivateIPC = false ## from systemd.exec Paths ExecSearchPath = /some/path:/some/other/path WorkingDirectory = ~ RootDirectory = /some/path RootImage = /some/path RootImageOptions = partition_name,noauto RootEphemeral = false RootHash = /some/path RootHash = 0xABCDEF RootHashSignature = RootVerity = /some/path MountAPIVFS = true ProcSubset = pid BindPaths = /source/path,/destination/path,rbind \ /source/path2,/destination/path2,norbind \ /source/path3 BindReadOnlyPaths = /source/path,/destination/path,rbind \ /source/path2,/destination/path2,norbind \ /source/path3 MountImages = /source/path,dest ## from systemd.exec Credentials User = 1000 Group = group-name DynamicUser = true SupplementaryGroups = group1 group-two 100 \ one-more-group PAMName = LoadCredential = some_id:/path/to/credential/data LoadCredentialEncrypted = some_id:/path/to/credential/data # accepts an optional single trailing asterisk ImportCredential = some* SetCredential = some_id:some_credential SetCredentialEncrypted = some_id:some_encrypted_credential ## from systemd.exec Capabilities CapabilityBoundingSet = ~ CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE \ CAP_NET_ADMIN CAP_SYS_BOOT AmbientCapabilities = CAP_SYS_ADMIN \ CAP_DAC_OVERRIDE ## from systemd.exec Security NoNewPrivileges = true SecureBits = keep-caps keep-caps-locked \ no-setuid-fixup \ no-setuid-fixup-locked ## from systemd.exec Mandatory Access Control SELinuxContext = AppArmorProfile = - someprofile SmackProcessLabel = -label ## from systemd.exec Process Properties LimitCPU = 15s:20s LimitFSIZE = 12G:24G LimitDATA = infinity LimitSTACK = 512K LimitCORE = 128K LimitRSS = 2G LimitNOFILE = 123:234 LimitAS = 3G LimitNPROC = 4711 LimitMEMLOCK = 12G LimitLOCKS = 321 LimitSIGPENDING = 46 LimitMSGQUEUE = 512K LimitNICE = +12 : +15 LimitRTPRIO = 20 : 40 LimitRTTIME = 12us : 15 UMask = 0022 CoredumpFilter = default private-dax shared-dax KeyringMode = private OOMScoreAdjust = 123 TimerSlackNSec = 321 Personality = x86-64 IgnoreSIGPIPE = false ## from systemd.exec Scheduling Nice = +12 CPUSchedulingPolicy = fifo CPUSchedulingPriority = 34 CPUSchedulingResetOnFork = false CPUAffinity = 0 1, 2 , \ 3, 4-8 NUMAPolicy = interleave NUMAMask = 1,2,3-8 IOSchedulingClass = idle IOSchedulingPriority = 5 ## from systemd.exec Sandboxing ProtectSystem = strict ProtectHome = read-only RuntimeDirectory = some/dir:some_symlink StateDirectory = some/dir CacheDirectory = some/dir LogsDirectory = some/dir ConfigurationDirectory = some/dir RuntimeDirectoryMode = 0755 StateDirectoryMode = 0755 CacheDirectoryMode = 0755 LogsDirectoryMode = 0755 ConfigurationDirectoryMode = 0755 RuntimeDirectoryPreserve = restart TimeoutCleanSec = 20 ReadWritePaths = some/dir ReadOnlyPaths = some/dir InaccessiblePaths = some/dir TemporaryFileSystem = /var:ro PrivateTmp = yes PrivateDevices = on PrivateNetwork = no NetworkNamespacePath = /some/path PrivateUsers = off ProtectHostname = false ProtectClock = no ProtectKernelTunables = yes ProtectKernelModules = true ProtectKernelLogs = yes ProtectControlGroups = y RestrictAddressFamilies = ~ AF_INET AF_VSOCK RestrictFileSystems = ~btrfs ntfs3 \ @temporary RestrictNamespaces = cgroup net \ ipc LockPersonality = yes MemoryDenyWriteExecute = true RestrictRealtime = true RestrictSUIDSGID = true RemoveIPC = no PrivateMounts = false MountFlags = shared ## from systemd.exec System Call Filtering SystemCallFilter = @debug @aio SystemCallErrorNumber = ETIMEDOUT SystemCallArchitectures = mips64-n32 \ native sparc SystemCallLog = ~ some_name \ another_name ## from systemd.exec System Call Environment Environment = DISPLAY=:%i Environment = XAUTHORITY=%t/Xauthority.%i \ "var=value with spaces" Environment = XDG_VTNR=vt%i EnvironmentFile = - /some/path PassEnvironment = SOME VARIABLES TO PASS UnsetEnvironment = SOME VARIABLES TO BE UNSET ## from systemd.exec Logging and Standard Input/Output StandardInput = file:/some/absolute/path StandardOutput = journal+console StandardError = inherit StandardInputText = SWNrIHNpdHplIGRhIHVuJyBlc3NlIEtsb3B StandardInputData = yBkZW5rIG5hbnUhCkpldHogaXNzZSB1ZmYsIGVy LogLevelMax = info LogExtraFields = FIELD=VALUE OTHER_FIELD=VALUE2 LogRateLimitIntervalSec = 1s 500ms LogRateLimitBurst = 50 LogFilterPatterns = ~some_rx LogFilterPatterns = \x7esome_rx LogNamespace = some_name SyslogIdentifier = some_identifier SyslogFacility = daemon SyslogLevel = debug SyslogLevelPrefix = true TTYPath = /dev/console TTYReset = yes TTYVHangup = on TTYRows = 24 TTYColumns = 80 TTYVTDisallocate = true ## from systemd.exec System V Compatibility UtmpIdentifier = utid UtmpMode = init ## from systemd.kill KillMode = process KillSignal = SIGABRT RestartKillSignal = SIGHUP SendSIGHUP = yes SendSIGKILL = no FinalKillSignal = SIGABRT WatchdogSignal = SIGQUIT ## from systemd.resource-control CPUAccounting = yes CPUWeight = 1234 StartupCPUWeight = 321 CPUQuota = 123.4% CPUQuotaPeriodSec = 1s 23ms 45us AllowedCPUs = 0-8, 12 StartupAllowedCPUs = 0-24 AllowedMemoryNodes = 5-8, 12 StartupAllowedMemoryNodes = 5-10, 12 MemoryAccounting = yes MemoryMin = 10G MemoryLow = 20% StartupMemoryLow = 22% DefaultStartupMemoryLow = infinity MemoryHigh = 40 % StartupMemoryHigh = 12% MemoryMax = 60% StartupMemoryMax = 55% MemorySwapMax = 10G StartupMemorySwapMax = 5G MemoryZSwapMax = 2G StartupMemoryZSwapMax = 1500k TasksAccounting = on TasksMax = 50% IOAccounting = on IOWeight = 1000 StartupIOWeight = 500 IODeviceWeight = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 1000 IOReadBandwidthMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 10M IOWriteBandwidthMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5M IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 1K IOWriteIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 2K IODeviceLatencyTargetSec = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5s 20ms 100us IPAccounting = on IPAddressAllow = <IP_ADDRESS>/8 ::1/128 IPAddressDeny = <IP_ADDRESS>/8 ::1/128 DevicePolicy = strict Slice = some.slice Delegate = bpf-firewall DelegateSubgroup = some-cgroup-name DisableControllers = cpu io ManagedOOMSwap = auto ManagedOOMMemoryPressure = kill ManagedOOMMemoryPressureLimit = 50% ManagedOOMPreference = omit MemoryPressureWatch = skip MemoryPressureThresholdSec = 50ms BPFProgram = bind6:/sys/fs/bpf/sock-addr-hook RestrictNetworkInterfaces = ~eth1 eth2 [Socket] ListenStream = <IP_ADDRESS>:4000 ListenDatagram = /path/to/socket ListenFIFO = /some/path ListenSequentialPacket = @namespace ListenSpecial = /some/path ListenNetlink = kobject-uevent ListenMessageQueue = /queue ListenUSBFunction = /some/path SocketProtocol = sctp BindIPv6Only = both Backlog = 123 BindToDevice = name SocketGroup = users SocketUser = someuser SocketMode = 0644 DirectoryMode = 0744 Accept = no Writable = yes FlushPending = true MaxConnections = 34 MaxConnectionsPerSource = 10 KeepAlive = yes KeepAliveTimeSec = 15s 30ms KeepAliveIntervalSec = 10s 123us KeepAliveProbes = 12 NoDelay = false Priority = 5 DeferAcceptSec = 1s 100ms ReceiveBuffer = 10K SendBuffer = 15K IPTOS = low-delay IPTTL = 12 Mark = 12 ReusePort = no SmackLabel = value SmackLabelIPIn = value SmackLabelIPOut = value SELinuxContextFromNet = true PipeSize = 1M MessageQueueMaxMessages = 12 MessageQueueMessageSize = 1234 FreeBind = yes Transparent = no Broadcast = true PassCredentials = yes PassSecurity = true PassPacketInfo = true Timestamping = nsec TCPCongestion = westwood ExecStartPre = +/usr/bin/start/pre ExecStartPost = @/usr/bin/start/post arg ExecStopPre = /usr/bin/stop/pre ExecStopPost = /usr/bin/stop/post TimeoutSec = 1m 30sec Service = some.service RemoveOnStop = yes Symlinks = /some/path /some/other/path FileDescriptorName = some_name TriggerLimitIntervalSec = 1s 500ms TriggerLimitBurst = 50 # see [Service] for options from systemd.exec and systemd.kill [Swap] What = /dev/disk/by-uuid/5db77-fde6-424e-a1bb-e88e8996c Priority = 123 Options = some,device,options TimeoutSec = 1m 20s # see [Service] for options from systemd.exec and systemd.kill [Timer] OnActiveSec = 90 OnBootSec = 5min 15s 100ms OnStartupSec = 2 minutes OnUnitActiveSec = 1 min OnUnitInactiveSec = 1m 30s OnCalendar = daily AccuracySec = 1min 10sec RandomizedDelaySec = 30s FixedRandomDelay = yes OnClockChange = false OnTimezoneChange = true Unit = some_timed.service Persistent = true WakeSystem = no RemainAfterElapse = true [Unit] Description = Testing systemd unit Documentation = https://docs.kde.org/stable5/en/applications/katepart/highlight.html \ man:/systemd.unit Requires = some.service Requisite = some-service-name.service Wants = some.service BindsTo = some.service BindsTo = %i.mount PartOf = some.service Upholds = some.service some-other.service Conflicts = some.service Before = some.service After = some.service<EMAIL_ADDRESS>OnFailure = some.service OnSuccess = some.service some-other.service PropagatesReloadTo = some.service ReloadPropagatedFrom = some.service JoinsNamespaceOf = some.service PropagatesStopTo = some.service some-other.service StopPropagatedFrom = some.service some-other.service RequiresMountsFor = /tmp /var/log %h OnFailureJobMode = fail OnSuccessJobMode = replace IgnoreOnIsolate = true StopWhenUnneeded = false RefuseManualStart = false RefuseManualStop = true AllowIsolate = true DefaultDependencies = no CollectMode = inactive FailureAction = reboot SuccessAction = none FailureActionExitStatus = 15 SuccessActionExitStatus = 255 JobTimeoutSec = 10 JobRunningTimeoutSec = infinity JobTimeoutAction = none JobTimeoutRebootArgument = some argument StartLimitIntervalSec = 0 StartLimitBurst = 10 StartLimitAction = none RebootArgument = some argument ConditionArchitecture = x86 ConditionVirtualization = |vmware ConditionHost = !shodan* ConditionKernelCommandLine = !kernel_option ConditionKernelVersion = | >= 4.* ConditionCredential = name ConditionEnvironment = SOME_ENVIRONMENT_VARIABLE=some_value ConditionSecurity = | ! selinux ConditionCapability = !CAP_NET_ADMIN ConditionACPower = true ConditionNeedsUpdate = !/var ConditionFirstBoot = |false ConditionPathExists = !/some/absolute/path ConditionPathExistsGlob = |!/m?t/s[ao]me/path* ConditionPathIsDirectory = !/some/path ConditionPathIsSymbolicLink = !/some/path ConditionPathIsMountPoint = /some/path ConditionPathIsReadWrite = !/some/path ConditionPathIsEncrypted = !/some/absolute/path ConditionDirectoryNotEmpty = !/some/path ConditionFileNotEmpty = !/some/path ConditionFileIsExecutable = !/some/path ConditionUser = |@system ConditionGroup = |groupname ConditionControlGroupController = memory ConditionMemory = | >= 1G ConditionCPUs = | < 8 ConditionCPUFeature = | sse2 ConditionOSRelease = ID=some-id ConditionMemoryPressure = 20%/5min ConditionCPUPressure = 12%/10sec ConditionIOPressure = 30% / 1min AssertArchitecture = x86 AssertVirtualization = |vmware AssertHost = !shodan* AssertKernelCommandLine = !kernel_option AssertKernelVersion = !>=5.3 AssertCredential = name AssertEnvironment = SOME_ENVIRONMENT_VARIABLE=some_value AssertSecurity = | ! selinux AssertCapability = !CAP_NET_ADMIN AssertACPower = true AssertNeedsUpdate = !/var AssertFirstBoot = |false AssertPathExists = !/some/absolute/path AssertPathExistsGlob = |!/mnt/* AssertPathIsDirectory = !/some/path AssertPathIsSymbolicLink = !/some/path AssertPathIsMountPoint = !/some/path AssertPathIsReadWrite = !/some/path AssertPathIsEncrypted = !/some/path AssertDirectoryNotEmpty = !/some/path AssertFileNotEmpty = !/some/path AssertFileIsExecutable = !/some/path AssertUser = |@system AssertGroup = |groupname AssertControlGroupController = memory AssertCPUFeature = | sse4_2 AssertOSRelease = ID=some-id AssertMemoryPressure = 20%/5min AssertCPUPressure = 12%/10sec AssertIOPressure = 30% / 1min ###### invalid sections [Device] [Invalid] [Slice] [Target] ############ # Extensions ############ ###### option [Unit] Description = testing extensions X-this = some value X-multiple-lines = some.service \ other service ###### section [X-Unit] name = value ## Comments in an extension section are just the same as elsewhere. Some text in an extension section. The extension section ends with the next section header. ######## # Format ######## ###### for options accepting multiple values, lines may be continued # using a trailing backlash [Unit] Before = before-me.socket \ before-me.service ###### additional spaces are OK [Unit] RequiresMountsFor = /tmp /var/log ######################################################## # Testing valid and invalid values for defined contexts. ######################################################## ###### invalid options [Unit] # missing assignment operator Description is invalid as it lacks the assignment operator # invalid option name InvalidOption = some text # WantedBy belongs to the [Install] section WantedBy = some.service some.socket ###### AC architecture [Unit] # see "architecture" for all possible values AssertArchitecture = alpha AssertArchitecture = | alpha AssertArchitecture = |! alpha AssertArchitecture = ! alpha # other options ConditionArchitecture = |! alpha ## invalid values AssertArchitecture = !| alpha AssertArchitecture = || alpha AssertArchitecture = !! alpha ###### AC boolean [Unit] # see "boolean" for all possible values AssertACPower = true AssertACPower = | true AssertACPower = | ! true AssertACPower = ! true # other options AssertFirstBoot = | ! true ConditionACPower = | ! true ConditionFirstBoot = | ! true ## invalid values AssertACPower = ! | true AssertACPower = | | true AssertACPower = !! true ###### AC capability [Unit] # see "capability" for all possible values AssertCapability = CAP_CHOWN AssertCapability = | CAP_CHOWN AssertCapability = |! CAP_CHOWN AssertCapability = ! CAP_CHOWN # other options ConditionCapability = |! CAP_CHOWN ## invalid values AssertCapability = !| CAP_CHOWN AssertCapability = || CAP_CHOWN AssertCapability = !! CAP_CHOWN ###### AC cardinal [Unit] ConditionCPUs = < 123456789 ConditionCPUs = <= 123456789 ConditionCPUs = = 123456789 ConditionCPUs = != 123456789 ConditionCPUs = >=123456789 ConditionCPUs = > 123456789 ConditionCPUs = |< 123456789 ConditionCPUs = |<= 123456789 ConditionCPUs = |= 123456789 ConditionCPUs = | != 123456789 ConditionCPUs = | >=123456789 ConditionCPUs = | > 123456789 ## other options ConditionCPUs = > 4 ## invalid values ConditionCPUs = == 123456789 ConditionCPUs = >> 123456789 ConditionCPUs = = 123456789.987 ConditionCPUs = || = 123456789.987 ###### AC cardinal KMGT [Unit] ConditionMemory = > 123456789 ConditionMemory = |< 123456789 ConditionMemory = |! >= 1G ConditionMemory = | != 512K ## invalid values # no exabyte (yet) ConditionMemory = = 1E ###### AC cpu feature [Unit] # see "cpu feature" for all possible values ConditionCPUFeature = |! sse2 ###### AC controller cg (assert/condition for control group controller) [Unit] AssertControlGroupController = cpu AssertControlGroupController = | cpu AssertControlGroupController = |! cpu AssertControlGroupController = ! cpu # other options ConditionControlGroupController = |! cpu ## invalid values AssertControlGroupController = !| cpu AssertControlGroupController = || cpu AssertControlGroupController = !! cpu ###### AC firmware [Unit] # see "firmware" for all possible values ConditionFirmware = |! uefi ###### AC group [Unit] AssertGroup = | name AssertGroup = |! name AssertGroup = ! name # other options ConditionGroup = |! name ## invalid values AssertGroup = !| name AssertGroup = || name AssertGroup = !! name ###### AC security [Unit] # see "security" for all possible values AssertSecurity = audit AssertSecurity = | audit AssertSecurity = |! audit AssertSecurity = ! audit # other options ConditionSecurity = |! audit ## invalid values AssertSecurity = !| audit AssertSecurity = || audit AssertSecurity = !! audit ###### AC text [Unit] AssertKernelCommandLine = option=value AssertKernelCommandLine = | arg AssertKernelCommandLine = |! arg AssertKernelCommandLine = ! arg # other options AssertDirectoryNotEmpty = |! /some/path AssertFileIsExecutable = |! /some/path AssertFileNotEmpty = |! /some/path AssertKernelVersion = |! arg AssertNeedsUpdate = |! /etc AssertPathExists = |! /some/path AssertPathIsDirectory = |! /some/path AssertPathIsEncrypted = |! /some/path AssertPathIsMountPoint = |! /some/path AssertPathIsReadWrite = |! /some/path AssertPathIsSymbolicLink = |! /some/path ConditionDirectoryNotEmpty = |! /some/path ConditionEnvironment = |! name=value ConditionFileIsExecutable = |! /some/path ConditionFileNotEmpty = |! /some/path ConditionKernelCommandLine = |! arg ConditionKernelVersion = |! arg ConditionNeedsUpdate = |! /var ConditionPathExists = |! /some/path ConditionPathIsDirectory = |! /some/path ConditionPathIsEncrypted = |! /some/path ConditionPathIsMountPoint = |! /some/path ConditionPathIsReadWrite = |! /some/path ConditionPathIsSymbolicLink = |! /some/path ## invalid values AssertKernelCommandLine = !| arg AssertKernelCommandLine = || arg AssertKernelCommandLine = !! arg ###### AC text * [Unit] AssertHost = hostname AssertHost = hostname* AssertHost = | hostname* AssertHost = |!hostname* AssertHost = !hostname* # other options ConditionHost = |!hostname* ## invalid values AssertHost = !| hostname* AssertHost = || hostname* AssertHost = !! hostname* ###### AC text glob [Unit] AssertPathExistsGlob = |!/s[ao]me/path* ## invalid values ConditionPathExistsGlob = !! /s?me/path* ###### AC threshold [Unit] # there is only a fixed set of time spans to choose from ConditionMemoryPressure = 10%/10sec ConditionMemoryPressure = 20%/1min ConditionMemoryPressure = | ! 30 % / 5min ## invalid values # invalid time span ConditionMemoryPressure = 30%/5sec # no % ConditionMemoryPressure = 30 / 10sec # no separator before time span ConditionMemoryPressure = 30% 10sec ###### AC user AssertUser = | @system AssertUser = | name AssertUser = |! @system AssertUser = ! name # other options ConditionUser = |! @system ## invalid values AssertUser = !| name AssertUser = || name AssertUser = !! name ###### AC virtualization # accepts boolean too AssertVirtualization = |true # see "virtualization" for all possible values AssertVirtualization = container AssertVirtualization = | container AssertVirtualization = |! container ConditionVirtualization = |! container AssertVirtualization = ! container ## invalid values AssertVirtualization = ! | true AssertVirtualization = | | true AssertVirtualization = !! true # multiple values AssertVirtualization = true false ###### - text [Service] AppArmorProfile = - some-profile AppArmorProfile =-profile ###### -+/path list [Service] ReadWritePaths = -/some/path ReadWritePaths = -+/some/path ReadWritePaths = +/some/path ReadWritePaths =+/some/path-+/ -/some/other/path \ -+/one/more/path ## invalid values ReadWritePaths = - /some/path ReadWritePaths = + /some/path ReadWritePaths = +-/some/path ###### ~ address family list [Service] RestrictAddressFamilies = AF_ALG RestrictAddressFamilies = AF_APPLETALK RestrictAddressFamilies = AF_ASH RestrictAddressFamilies = AF_ATMPVC RestrictAddressFamilies = AF_ATMSVC RestrictAddressFamilies = AF_AX25 RestrictAddressFamilies = AF_BLUETOOTH RestrictAddressFamilies = AF_BRIDGE RestrictAddressFamilies = AF_CAIF RestrictAddressFamilies = AF_CAN RestrictAddressFamilies = AF_DECnet RestrictAddressFamilies = AF_ECONET RestrictAddressFamilies = AF_FILE RestrictAddressFamilies = AF_IB RestrictAddressFamilies = AF_IEEE802154 RestrictAddressFamilies = AF_INET RestrictAddressFamilies = AF_INET6 RestrictAddressFamilies = AF_IPX RestrictAddressFamilies = AF_IRDA RestrictAddressFamilies = AF_ISDN RestrictAddressFamilies = AF_IUCV RestrictAddressFamilies = AF_KCM RestrictAddressFamilies = AF_KEY RestrictAddressFamilies = AF_LLC RestrictAddressFamilies = AF_LOCAL RestrictAddressFamilies = AF_MAX RestrictAddressFamilies = AF_MPLS RestrictAddressFamilies = AF_NETBEUI RestrictAddressFamilies = AF_NETLINK RestrictAddressFamilies = AF_NETROM RestrictAddressFamilies = AF_NFC RestrictAddressFamilies = AF_PACKET RestrictAddressFamilies = AF_PHONET RestrictAddressFamilies = AF_PPPOX RestrictAddressFamilies = AF_QIPCRTR RestrictAddressFamilies = AF_RDS RestrictAddressFamilies = AF_ROSE RestrictAddressFamilies = AF_ROUTE RestrictAddressFamilies = AF_RXRPC RestrictAddressFamilies = AF_SECURITY RestrictAddressFamilies = AF_SMC RestrictAddressFamilies = AF_SNA RestrictAddressFamilies = AF_TIPC RestrictAddressFamilies = AF_UNIX RestrictAddressFamilies = AF_UNSPEC RestrictAddressFamilies = AF_VSOCK RestrictAddressFamilies = AF_WANPIPE RestrictAddressFamilies = AF_X25 RestrictAddressFamilies = AF_XDP RestrictAddressFamilies = ~ AF_XDP AF_LOCAL \ AF_SECURITY # since version 249 an additional 'none' is supported RestrictAddressFamilies = none ## invalid values RestrictAddressFamilies = AF_INVALID # multiple values including `none` RestrictAddressFamilies = AF_ROUTE none AF_ROSE ###### ~ capability list # all the values of capability, but multple values for a single option entry are valid [Service] AmbientCapabilities = ~ CAP_NET_ADMIN CAP_NET_RAW \ CAP_WAKE_ALARM CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_RAW \ CAP_WAKE_ALARM ###### ~ namespace list [Service] RestrictNamespaces = cgroup RestrictNamespaces = ipc RestrictNamespaces = mnt RestrictNamespaces = net RestrictNamespaces = pid RestrictNamespaces = user RestrictNamespaces = uts RestrictNamespaces = cgroup uts RestrictNamespaces = ~ cgroup pid \ uts # includes boolean RestrictNamespaces = true RestrictNamespaces = false ## invalid values RestrictNamespaces = invalid RestrictNamespaces = ~ true # if boolean, no multiple values RestrictNamespaces = true cgroup ###### ~ system call filter list [Service] SystemCallFilter = @aio SystemCallFilter = @basic-io SystemCallFilter = @chown SystemCallFilter = @clock SystemCallFilter = @cpu-emulation SystemCallFilter = @debug SystemCallFilter = @default SystemCallFilter = @file-system SystemCallFilter = @io-event SystemCallFilter = @ipc SystemCallFilter = @keyring SystemCallFilter = @memlock SystemCallFilter = @module SystemCallFilter = @mount SystemCallFilter = @network-io SystemCallFilter = @obsolete SystemCallFilter = @privileged SystemCallFilter = @process SystemCallFilter = @raw-io SystemCallFilter = @reboot SystemCallFilter = @resources SystemCallFilter = @setuid SystemCallFilter = @signal SystemCallFilter = @swap SystemCallFilter = @sync SystemCallFilter = @system-service SystemCallFilter = @timer SystemCallFilter = @obsolete @timer \ @swap SystemCallFilter = ~ @reboot @swap ## invalid values SystemCallFilter = invalid SystemCallFilter = @invalid @ sync ###### action [Unit] FailureAction = exit FailureAction = exit-force FailureAction = halt FailureAction = halt-force FailureAction = halt-immediate FailureAction = kexec FailureAction = kexec-force FailureAction = none FailureAction = poweroff FailureAction = poweroff-force FailureAction = poweroff-immediate FailureAction = reboot FailureAction = reboot-force FailureAction = reboot-immediate FailureAction = soft-reboot FailureAction = soft-reboot-force ## invalid values FailureAction = invalid FailureAction = invalid exit # multiple values FailureAction = none exit ###### architecture [Unit] ConditionArchitecture = alpha ConditionArchitecture = arc ConditionArchitecture = arc-be ConditionArchitecture = arm ConditionArchitecture = arm-be ConditionArchitecture = arm64 ConditionArchitecture = arm64-be ConditionArchitecture = cris ConditionArchitecture = ia64 ConditionArchitecture = m68k ConditionArchitecture = mips ConditionArchitecture = mips-le ConditionArchitecture = mips64 ConditionArchitecture = mips64-le ConditionArchitecture = parisc ConditionArchitecture = parisc64 ConditionArchitecture = ppc ConditionArchitecture = ppc-le ConditionArchitecture = ppc64 ConditionArchitecture = ppc64-le ConditionArchitecture = s390 ConditionArchitecture = s390x ConditionArchitecture = sh ConditionArchitecture = sh64 ConditionArchitecture = sparc ConditionArchitecture = sparc64 ConditionArchitecture = tilegx ConditionArchitecture = x86 ConditionArchitecture = x86-64 # special value "native" ConditionArchitecture = native ## invalid values ConditionArchitecture = invalid ConditionArchitecture = invalid x86 # multiple values ConditionArchitecture = sparc x86 ###### boolean [Unit] StopWhenUnneeded = 1 StopWhenUnneeded = 0 StopWhenUnneeded = true StopWhenUnneeded = t StopWhenUnneeded = false StopWhenUnneeded = f StopWhenUnneeded = yes StopWhenUnneeded = y StopWhenUnneeded = no StopWhenUnneeded = n StopWhenUnneeded = on StopWhenUnneeded = off ## invalid values StopWhenUnneeded = invalid # multiple values StopWhenUnneeded = false true ###### calendar [Timer] OnCalendar = daily OnCalendar = hourly OnCalendar = minutely OnCalendar = monthly OnCalendar = quarterly OnCalendar = semiannually OnCalendar = weekly OnCalendar = yearly OnCalendar = daily UTC OnCalendar = daily utc OnCalendar = monday *-12-* 17:00 OnCalendar = Mon *-12-* 17:00 ## invalid values OnCalendar = Mo *-12-* 17:00 ###### capability [Unit] ConditionCapability = CAP_AUDIT_CONTROL ConditionCapability = CAP_AUDIT_READ ConditionCapability = CAP_AUDIT_WRITE ConditionCapability = CAP_BLOCK_SUSPEND ConditionCapability = CAP_CHECKPOINT_RESTORE ConditionCapability = CAP_CHOWN ConditionCapability = CAP_DAC_OVERRIDE ConditionCapability = CAP_DAC_READ_SEARCH ConditionCapability = CAP_FOWNER ConditionCapability = CAP_FSETID ConditionCapability = CAP_IPC_LOCK ConditionCapability = CAP_IPC_OWNER ConditionCapability = CAP_KILL ConditionCapability = CAP_LEASE ConditionCapability = CAP_LINUX_IMMUTABLE ConditionCapability = CAP_MAC_ADMIN ConditionCapability = CAP_MAC_OVERRIDE ConditionCapability = CAP_MKNOD ConditionCapability = CAP_NET_ADMIN ConditionCapability = CAP_NET_BIND_SERVICE ConditionCapability = CAP_NET_BROADCAST ConditionCapability = CAP_NET_RAW ConditionCapability = CAP_SETGID ConditionCapability = CAP_SETFCAP ConditionCapability = CAP_SETPCAP ConditionCapability = CAP_SETUID ConditionCapability = CAP_SYS_ADMIN ConditionCapability = CAP_SYS_BOOT ConditionCapability = CAP_SYS_CHROOT ConditionCapability = CAP_SYS_MODULE ConditionCapability = CAP_SYS_NICE ConditionCapability = CAP_SYS_PACCT ConditionCapability = CAP_SYS_PTRACE ConditionCapability = CAP_SYS_RAWIO ConditionCapability = CAP_SYS_RESOURCE ConditionCapability = CAP_SYS_TIME ConditionCapability = CAP_SYS_TTY_CONFIG ConditionCapability = CAP_SYSLOG ConditionCapability = CAP_WAKE_ALARM ## invalid values ConditionCapability = invalid # multiple values ConditionCapability = CAP_NET_ADMIN CAP_NET_RAW ###### cardinal [Unit] StartLimitBurst = 15 ## invalid values StartLimitBurst = -10 StartLimitBurst = 12.34 StartLimitBurst = 10% StartLimitBurst = infinity # multiple values StartLimitBurst = 10 20 ###### cardinal % infinity [Service] TasksMax = 15 TasksMax = 10% TasksMax = infinity ## invalid values TasksMax = -10 TasksMax = 12.34 # multiple values TasksMax = 10 20 TasksMax = infinity 20 ###### cardinal %KGMT infinity [Service] MemoryMin = 123 MemoryMin = 12K MemoryMin = 12M MemoryMin = 12G MemoryMin = 12T MemoryMin = 12 G MemoryMin = 20% MemoryMin = infinity ## invalid values MemoryMin = invalid # invalid bytes suffix MemoryMin = 12g MemoryMin = 12H MemoryMin = 12 E MemoryMin = 12P ###### cardinal KGMT [Socket] PipeSize = 123 PipeSize = 12K PipeSize = 12M PipeSize = 12G PipeSize = 12T PipeSize = 12 G ## invalid values PipeSize = invalid PipeSize = infinity # invalid bytes suffix PipeSize = 12g PipeSize = 12H PipeSize = 12 E PipeSize = 12P PipeSize = 20% ###### cardinal KGMT infinity [Service] MemorySwapMax = 123 MemorySwapMax = 12K MemorySwapMax = 12M MemorySwapMax = 12G MemorySwapMax = 12T MemorySwapMax = 12 G MemorySwapMax = infinity ## invalid values MemorySwapMax = invalid # invalid bytes suffix MemorySwapMax = 12g MemorySwapMax = 12H MemorySwapMax = 12 E MemorySwapMax = 12P MemorySwapMax = 20% ###### collect mode [Unit] CollectMode = inactive CollectMode = inactive-or-failed ## invalid values CollectMode = invalid CollectMode = invalid inactive # multiple values CollectMode = inactive-or-failed inactive ###### condition needs update [Unit] ConditionNeedsUpdate = !/etc ConditionNeedsUpdate = !/var ## invalid values ConditionNeedsUpdate = /home # multiple values ConditionNeedsUpdate = /etc /var ###### condition user [Unit] ConditionUser = @system ConditionUser = name1 ConditionUser = 1050 ## invalid values ConditionUser = -1050 # multiple values ConditionUser = @system 1050 ###### controller cg (control group controller) [Unit] AssertControlGroupController = cpu AssertControlGroupController = io AssertControlGroupController = memory AssertControlGroupController = pids AssertControlGroupController = v1 AssertControlGroupController = v2 # multiple values AssertControlGroupController = cpu memory ## invalid values AssertControlGroupController = invalid ###### controller list [Service] # single controller DisableControllers = blkio DisableControllers = bpf-devices DisableControllers = bpf-firewall DisableControllers = cpu DisableControllers = cpuacct DisableControllers = cpuset DisableControllers = devices DisableControllers = io DisableControllers = memory DisableControllers = pids # multiple controllers DisableControllers = cpu io \ memory ## invalid values DisableControllers = dev invalid ###### cpu affinity [Service] # either "numa" or any of the values for "cpu index list" CPUAffinity = numa CPUAffinity = 0 1, 2 , \ 3, 4-8 , 10 - 12 # since version 249 specifiers are supported CPUAffinity = %I ## invalid values CPUAffinity = numa-x # no multiple "numa" CPUAffinity = numa numa # no CPU index list and "numa" CPUAffinity = numa 0 1 2 CPUAffinity = 0 1 2 numa ###### cpu feature [Unit] ConditionCPUFeature = abm ConditionCPUFeature = adx ConditionCPUFeature = aes ConditionCPUFeature = apic ConditionCPUFeature = avx ConditionCPUFeature = avx2 ConditionCPUFeature = bmi1 ConditionCPUFeature = bmi2 ConditionCPUFeature = clflush ConditionCPUFeature = cmov ConditionCPUFeature = constant_tsc ConditionCPUFeature = cx16 ConditionCPUFeature = cx8 ConditionCPUFeature = de ConditionCPUFeature = f16c ConditionCPUFeature = fma3 ConditionCPUFeature = fpu ConditionCPUFeature = fxsr ConditionCPUFeature = ht ConditionCPUFeature = lahf_lm ConditionCPUFeature = lm ConditionCPUFeature = mca ConditionCPUFeature = mce ConditionCPUFeature = mmx ConditionCPUFeature = monitor ConditionCPUFeature = movbe ConditionCPUFeature = msr ConditionCPUFeature = mtrr ConditionCPUFeature = osxsave ConditionCPUFeature = pae ConditionCPUFeature = pat ConditionCPUFeature = pclmul ConditionCPUFeature = pge ConditionCPUFeature = pni ConditionCPUFeature = popcnt ConditionCPUFeature = pse ConditionCPUFeature = pse36 ConditionCPUFeature = rdrand ConditionCPUFeature = rdseed ConditionCPUFeature = rdtscp ConditionCPUFeature = sep ConditionCPUFeature = sha_ni ConditionCPUFeature = sse ConditionCPUFeature = sse2 ConditionCPUFeature = sse4_1 ConditionCPUFeature = sse4_2 ConditionCPUFeature = ssse3 ConditionCPUFeature = syscall ConditionCPUFeature = tsc ConditionCPUFeature = vme ConditionCPUFeature = xsave ## invalid values ConditionCPUFeature = invalid # multiple values ConditionCPUFeature = tsc mmx ###### cpu index list [Service] NUMAMask = 0 1 2 NUMAMask = 0,1, 2 # using ranges NUMAMask = 0-2 NUMAMask = 0 - 2 NUMAMask = 0 1, 2 , \ 3, 4-8 , ## invalid values NUMAMask = 0 invalid 2, 3;4 NUMAMask = 0-a1 NUMAMask = numa ###### cpu scheduling policy [Service] CPUSchedulingPolicy = batch CPUSchedulingPolicy = fifo CPUSchedulingPolicy = idle CPUSchedulingPolicy = other CPUSchedulingPolicy = rr ## invalid values CPUSchedulingPolicy = invalid # multiple values CPUSchedulingPolicy = batch fifo ###### cpu scheduling priority [Service] CPUSchedulingPriority = 12 CPUSchedulingPriority = 99 ## invalid values CPUSchedulingPriority = invalid CPUSchedulingPriority = -12 CPUSchedulingPriority = 0.12 # out of range CPUSchedulingPriority = 0 CPUSchedulingPriority = 100 # multiple values CPUSchedulingPriority = 12 34 ###### cpu weight [Service] CPUWeight = idle # integer 1..10000 CPUWeight = 1 CPUWeight = 12 CPUWeight = 123 CPUWeight = 1234 CPUWeight = 1234 CPUWeight = 10000 ## invalid values CPUWeight = -1 CPUWeight = 0 CPUWeight = 10001 CPUWeight = 12345 CPUWeight = 12.3 CPUWeight = invalid # multiple values CPUWeight = 1 10000 ###### delegate [Service] # single boolean Delegate = false Delegate = true # single controller Delegate = blkio Delegate = bpf-devices Delegate = bpf-firewall Delegate = cpu Delegate = cpuacct Delegate = cpuset Delegate = devices Delegate = io Delegate = memory Delegate = pids # multiple controllers Delegate = cpu io \ memory ## invalid values Delegate = invalid # multiple boolean values Delegate = on off ###### device cardinal KMGT [Service] IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 123 IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12K IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12M IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12G IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12T IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12 G IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 \ 10M ## invalid values IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 20% # invalid multiplier suffix IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12g IOReadIOPSMax = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 12E # no device IOReadIOPSMax = 10 IOReadIOPSMax = 10M ###### device policy [Service] DevicePolicy = auto DevicePolicy = closed DevicePolicy = strict ## invalid values DevicePolicy = invalid # multiple values DevicePolicy = auto closed ###### device time span [Service] IODeviceLatencyTargetSec = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 123 IODeviceLatencyTargetSec = /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0 5s 20ms \ 100us ## invalid values # no device IODeviceLatencyTargetSec = 123 IODeviceLatencyTargetSec = 5s 20ms 100us ###### exec [Service] # specifier and environment variable ExecStart = /some/cmd %u arg $var1 inside${var2}word ${var3} $var4 ExecStart = cmd1 %h arg1_1 $var1, cmd2 %u arg2_1 $var2_1\ $var2_2 # escapes (not exactly the same as detected by HlCStringChar) ExecStart = cmd \, \' \" \\ \a \b \f \n \r \s \t \v \x0A \012 \u1234 \U12abcdef # prefix ExecStart = @/some/cmd arg "@!+-:" ExecStart = -/some/cmd-1 -option arg ExecStart = :/some/cmd arg ExecStart = +/some/cmd arg ExecStart = !/some/cmd arg ExecStart = !!/some/cmd arg ExecStart = @:-!!/some/cmd arg ExecStart = @!!-:/some/cmd arg ExecStart = @:-+/some/cmd arg ## invalid values # invalid prefix ExecStart = @ /some/cmd arg ExecStart = @ -/some/cmd arg ExecStart = +!/some/cmd arg ExecStart = !!!/some/cmd arg ExecStart = @+@/some/cmd arg ExecStart = @!!+/some/cmd arg ###### exit status [Service] SuccessExitStatus = 75 SuccessExitStatus = ADDRESS_FAMILIES SuccessExitStatus = APPARMOR SuccessExitStatus = BPF SuccessExitStatus = CACHE_DIRECTORY SuccessExitStatus = CANTCREAT SuccessExitStatus = CAPABILITIES SuccessExitStatus = CGROUP SuccessExitStatus = CHDIR SuccessExitStatus = CHOWN SuccessExitStatus = CHROOT SuccessExitStatus = CONFIG SuccessExitStatus = CONFIGURATION_DIRECTORY SuccessExitStatus = CONFIRM SuccessExitStatus = CPUAFFINITY SuccessExitStatus = CREDENTIALS SuccessExitStatus = DATAERR SuccessExitStatus = EXCEPTION SuccessExitStatus = EXEC SuccessExitStatus = FAILURE SuccessExitStatus = FDS SuccessExitStatus = GROUP SuccessExitStatus = INVALIDARGUMENT SuccessExitStatus = IOERR SuccessExitStatus = IOPRIO SuccessExitStatus = KEYRING SuccessExitStatus = LIMITS SuccessExitStatus = LOGS_DIRECTORY SuccessExitStatus = MEMORY SuccessExitStatus = NAMESPACE SuccessExitStatus = NETWORK SuccessExitStatus = NICE SuccessExitStatus = NOHOST SuccessExitStatus = NOINPUT SuccessExitStatus = NOPERM SuccessExitStatus = NOPERMISSION SuccessExitStatus = NOTCONFIGURED SuccessExitStatus = NOTIMPLEMENTED SuccessExitStatus = NOTINSTALLED SuccessExitStatus = NOTRUNNING SuccessExitStatus = NOUSER SuccessExitStatus = NO_NEW_PRIVILEGES SuccessExitStatus = NUMA_POLICY SuccessExitStatus = OOM_ADJUST SuccessExitStatus = OSERR SuccessExitStatus = OSFILE SuccessExitStatus = PAM SuccessExitStatus = PERSONALITY SuccessExitStatus = PROTOCOL SuccessExitStatus = RUNTIME_DIRECTORY SuccessExitStatus = SECCOMP SuccessExitStatus = SECUREBITS SuccessExitStatus = SELINUX_CONTEXT SuccessExitStatus = SETSCHEDULER SuccessExitStatus = SETSID SuccessExitStatus = SIGNAL_MASK SuccessExitStatus = SMACK_PROCESS_LABEL SuccessExitStatus = SOFTWARE SuccessExitStatus = STATE_DIRECTORY SuccessExitStatus = STDERR SuccessExitStatus = STDIN SuccessExitStatus = STDOUT SuccessExitStatus = SUCCESS SuccessExitStatus = TEMPFAIL SuccessExitStatus = TIMERSLACK SuccessExitStatus = UNAVAILABLE SuccessExitStatus = USAGE SuccessExitStatus = USER # using signals (see values for context "signal" for a complete list of values) SuccessExitStatus = SIGABRT SuccessExitStatus = ADDRESS_FAMILIES 75 \ 23 SIGHUP ## invalid values SuccessExitStatus = invalid SuccessExitStatus = -23 ###### exit type [Service] ExitType = main ExitType = cgroup ## invalid values ExitType = invalid # multiple values ExitType = main cgroup ###### failure mode [Service] TimeoutStartFailureMode = abort TimeoutStartFailureMode = kill TimeoutStartFailureMode = terminate ## invalid values TimeoutStartFailureMode = invalid # multiple values TimeoutStartFailureMode = abort kill ###### file mode [Automount] DirectoryMode = 755 ## invalid values DirectoryMode = invalid # need octal digits DirectoryMode = 0758 DirectoryMode = 075A # need 3 to 4 octal digits DirectoryMode = 07 # multiple values DirectoryMode = 0755 0755 ###### firmware [Unit] ConditionFirmware = uefi ConditionFirmware = device-tree ConditionFirmware = device-tree-compatible(some-device-tree) ConditionFirmware = device-tree-compatible( some-device-tree ) ConditionFirmware = smbios-field(board_name = "Custom Board") ## invalid values ConditionFirmware = invalid ConditionFirmware = device-tree-invalid # missing argument ConditionFirmware = device-tree-compatible ConditionFirmware = device-tree-compatible() ConditionFirmware = smbios-field ConditionFirmware = smbios-field() # multiple values ConditionFirmware = uefi device-tree ###### fs set [Service] RestrictFileSystems = @auxiliary-api RestrictFileSystems = @basic-api RestrictFileSystems = @common-block RestrictFileSystems = @historical-block RestrictFileSystems = @known RestrictFileSystems = @network RestrictFileSystems = @privileged-api RestrictFileSystems = @temporary ## invalid values RestrictFileSystems = invalid RestrictFileSystems = temporary ###### fs type # A selection of file system types to be used as `Type` in mount units. [Mount] Type = binfmt_misc Type = btrfs Type = configfs Type = debugfs Type = devtmpfs Type = efivarfs Type = exfat Type = ext2 Type = ext3 Type = ext4 Type = f2fs Type = fuse Type = fusectl Type = gfs2 Type = hugetlbfs Type = iso9660 Type = jfs Type = mqueue Type = msdos Type = nfs Type = nilfs2 Type = ntfs Type = ntfs3 Type = ocfs2 Type = overlay Type = proc Type = reiserfs Type = tmpfs Type = tracefs Type = udf Type = vfat Type = virtiofs Type = xfs ## invalid values Type = invalid Type = invalid ext4 # multiple values Type = btrfs ext4 ###### fs type set list ## list of fs type names and fs set names [Service] RestrictFileSystems = @auxiliary-api btrfs \ nfs @temporary unknown ###### group and user [Service] User = 0 User = 1000 Group = 100 User = some-name Group = some_name User = _some-name-1 User = name1 # using specifiers User = %i User = name-%i User = some-%i-name User = %U-name User = some-%i-name-%U ## invalid values # no negative integers User = -1000 # no float User = 100.0 # no name with leading digit User = 1name # no name with leading hyphen User = -name # multiple values User = 1000 1001 ###### group list [Service] SupplementaryGroups = some-name %U some%iname \ %Uname 1001 name%U ###### io scheduling class # see systemd.exec [Service] IOSchedulingClass = 0 IOSchedulingClass = 1 IOSchedulingClass = 2 IOSchedulingClass = 3 IOSchedulingClass = best-effort IOSchedulingClass = idle IOSchedulingClass = realtime ## invalid values IOSchedulingClass = invalid IOSchedulingClass = none IOSchedulingClass = 4 IOSchedulingClass = 123 IOSchedulingClass = -1 # multiple values IOSchedulingClass = 1 idle IOSchedulingClass = idle idle IOSchedulingClass = idle 1 ###### ip address list [Service] IPAddressAllow = any IPAddressAllow = localhost IPAddressAllow = link-local IPAddressDeny = multicast IPAddressAllow = localhost \ multicast IPAddressAllow = <IP_ADDRESS>/8 ::1/128 <IP_ADDRESS>/16 fe80::/64 ## invalid values IPAddressAllow = invalid ###### ip bind [Socket] BindIPv6Only = both BindIPv6Only = default BindIPv6Only = ipv6-only ## invalid values BindIPv6Only = invalid # multiple values BindIPv6Only = both default ###### io scheduling priority [Service] IOSchedulingPriority = 0 IOSchedulingPriority = 1 IOSchedulingPriority = 2 IOSchedulingPriority = 3 IOSchedulingPriority = 4 IOSchedulingPriority = 5 IOSchedulingPriority = 6 IOSchedulingPriority = 7 ## invalid values IOSchedulingPriority = 8 IOSchedulingPriority = 123 IOSchedulingPriority = -1 # multiple values IOSchedulingPriority = 0 3 ###### ip tos (terms-of-service) [Socket] IPTOS = 15 IPTOS = low-cost IPTOS = low-delay IPTOS = reliability IPTOS = throughput ## invalid values IPTOS = invalid # multiple values IPTOS = 15 20 IPTOS = low-delay 15 ###### keyring mode [Service] KeyringMode = inherit KeyringMode = private KeyringMode = shared ## invalid values KeyringMode = invalid # multiple values KeyringMode = shared private ###### kill mode [Service] KillMode = control-group KillMode = mixed KillMode = none KillMode = process ## invalid values KillMode = invalid # multiple values KillMode = mixed process ###### limit bytes [Service] LimitFSIZE = 123 LimitFSIZE = 12K LimitFSIZE = 12M LimitFSIZE = 12G LimitFSIZE = 12T LimitFSIZE = 12P LimitFSIZE = 12E LimitFSIZE = 12 G LimitFSIZE = 12G:24G LimitFSIZE = 12 G:24 G LimitFSIZE = 12 G: 24 G LimitFSIZE = 12 G :24 G LimitFSIZE = 12 G : 24 G LimitFSIZE = infinity ## invalid values LimitFSIZE = invalid # invalid bytes suffix LimitFSIZE = 12g LimitFSIZE = 12H ###### limit nice level [Service] LimitNICE = -1 LimitNICE = -12 LimitNICE = -20 LimitNICE = +1 LimitNICE = +12 LimitNICE = +19 LimitNICE = 0 LimitNICE = 9 LimitNICE = 12 LimitNICE = 23 LimitNICE = 34 LimitNICE = 40 LimitNICE = -10:+10 LimitNICE = 20:30 LimitNICE = infinity ## invalid values LimitNICE = invalid LimitNICE = 0.2 LimitNICE = 20 : infinity LimitNICE = infinity : 20 # out of range LimitNICE = -21 LimitNICE = -123 LimitNICE = +20 LimitNICE = +123 LimitNICE = 41 LimitNICE = 123 ###### limit number [Service] LimitNOFILE = 123 LimitNOFILE = 123:321 LimitNOFILE = infinity ## invalid values LimitNOFILE = invalid # negative values LimitNOFILE = -123 ###### limit time span [Service] LimitCPU = 15s 10us : 20s 5ms LimitCPU = infinity ## invalid values # only a single infinity LimitCPU = infinity : infinity LimitCPU = infinity : 10s 15ms LimitCPU = 10s 15ms : infinity ###### log facility [Service] SyslogFacility = auth SyslogFacility = authpriv SyslogFacility = cron SyslogFacility = daemon SyslogFacility = ftp SyslogFacility = kern SyslogFacility = local0 SyslogFacility = local1 SyslogFacility = local2 SyslogFacility = local3 SyslogFacility = local4 SyslogFacility = local5 SyslogFacility = local6 SyslogFacility = local7 SyslogFacility = lpr SyslogFacility = mail SyslogFacility = news SyslogFacility = syslog SyslogFacility = user SyslogFacility = uucp ## invalid values SyslogFacility = invalid # multiple values SyslogFacility = cron daemon ###### log level [Service] LogLevelMax = alert LogLevelMax = crit LogLevelMax = debug LogLevelMax = emerg LogLevelMax = err LogLevelMax = info LogLevelMax = notice LogLevelMax = warning ## invalid values LogLevelMax = invalid # multiple values LogLevelMax = info notice ###### memory mapping [Service] CoredumpFilter = all CoredumpFilter = default CoredumpFilter = private-anonymous CoredumpFilter = shared-anonymous CoredumpFilter = private-file-backed CoredumpFilter = shared-file-backed CoredumpFilter = elf-headers CoredumpFilter = private-huge CoredumpFilter = shared-huge CoredumpFilter = private-dax CoredumpFilter = shared-dax # multiple values CoredumpFilter = private-file-backed shared-dax ## invalid values CoredumpFilter = invalid CoredumpFilter = private-file-backed invalid elf-headers CoredumpFilter = invalid shared-dax # only spaces as separator CoredumpFilter = private-file-backed, shared-dax ###### memory pressure watch [Service] MemoryPressureWatch = auto MemoryPressureWatch = off MemoryPressureWatch = on MemoryPressureWatch = skip ## invalid values MemoryPressureWatch = invalid # multiple values MemoryPressureWatch = auto skip ###### mount flag [Service] MountFlags = private MountFlags = shared MountFlags = slave ## invalid values MountFlags = invalid # multiple values MountFlags = shared slave ###### nice level [Service] Nice = -1 Nice = -12 Nice = -20 Nice = +1 Nice = +12 Nice = +19 Nice = 0 Nice = 12 Nice = 19 ## invalid values Nice = invalid Nice = 0.2 # out of range Nice = -21 Nice = -123 Nice = +20 Nice = +123 Nice = 20 Nice = 30 Nice = 123 # multiple values Nice = 12 34 ###### notify access [Service] NotifyAccess = all NotifyAccess = exec NotifyAccess = main NotifyAccess = none ## invalid values NotifyAccess = invalid # multiple values NotifyAccess = exec none ###### numa mask [Service] NUMAMask = all NUMAMask = 1,2,3-8 ## invalid values NUMAMask = invalid # both all and cpu index list NUMAMask = all, 1,2,3-8 NUMAMask = 1,2,3-8, all ###### numa policy [Service] NUMAPolicy = bind NUMAPolicy = default NUMAPolicy = interleave NUMAPolicy = local NUMAPolicy = preferred ## invalid values NUMAPolicy = invalid # multiple values NUMAPolicy = interleave local ###### on failure job mode [Unit] OnFailureJobMode = fail OnFailureJobMode = flush OnFailureJobMode = ignore-dependencies OnFailureJobMode = ignore-requirements OnFailureJobMode = isolate OnFailureJobMode = replace OnFailureJobMode = replace-irreversibly ## invalid values OnFailureJobMode = invalid OnFailureJobMode = invalid fail # multiple values OnFailureJobMode = replace fail ###### oom behavior (out-of-memory killer behavior) [Service] ManagedOOMSwap = auto ManagedOOMSwap = kill ## invalid values ManagedOOMSwap = invalid # multiple values ManagedOOMSwap = auto kill ###### oom preference (out-of-memory killer preference) [Service] ManagedOOMPreference = avoid ManagedOOMPreference = none ManagedOOMPreference = omit ## invalid values ManagedOOMPreference = invalid # multiple values ManagedOOMPreference = avoid none ###### oom policy (out-of-memory killer policy) [Service] OOMPolicy = continue OOMPolicy = kill OOMPolicy = stop ## invalid values OOMPolicy = invalid # multiple values OOMPolicy = kill stop ###### oom score adjust (out-of-memory killer score adjustment) [Service] OOMScoreAdjust = -1000 OOMScoreAdjust = -123 OOMScoreAdjust = 0 OOMScoreAdjust = 321 OOMScoreAdjust = +321 OOMScoreAdjust = +1000 OOMScoreAdjust = 1000 ## invalid values OOMScoreAdjust = invalid OOMScoreAdjust = 1.2 # out of range OOMScoreAdjust = -1001 OOMScoreAdjust = +1001 OOMScoreAdjust = 1001 ###### open file option [Service] OpenFile = /some/path/:some-name:append,graceful,read-only,truncate ## invalid values OpenFile = /some/path/:some-name:some,invalid,options ###### percent [Slice] CPUQuota = 0.1% CPUQuota = 12 % CPUQuota = 123.4% ## invalid values CPUQuota = 10 CPUQuota = invalid # multiple values CPUQuota = 10% 20% ###### personality [Service] Personality = arm Personality = arm-be Personality = arm64 Personality = arm64-be Personality = ppc Personality = ppc-le Personality = ppc64 Personality = ppc64-le Personality = s390 Personality = s390x Personality = x86 Personality = x86-64 ## invalid values Personality = invalid Personality = alpha Personality = m68k # multiple values Personality = x86-64 s390x ###### proc subset [Service] ProcSubset = all ProcSubset = pid ## invalid values ProcSubset = invalid # multiple values ProcSubset = all pid ###### protect home [Service] ProtectHome = read-only ProtectHome = tmpfs ProtectHome = true ProtectHome = false ProtectHome = yes ## invalid values ProtectHome = invalid # multiple values ProtectHome = tmpfs true ###### protect system [Service] ProtectSystem = full ProtectSystem = strict ProtectSystem = true ProtectSystem = false ProtectSystem = yes ProtectSystem = no ## invalid values ProtectSystem = invalid # multiple values ProtectSystem = full true ###### restart [Service] Restart = always Restart = no Restart = on-abnormal Restart = on-abort Restart = on-failure Restart = on-success Restart = on-watchdog ## invalid values Restart = invalid # multiple values Restart = no on-abort ###### restart mode [Service] RestartMode = direct RestartMode = normal ## invalid values RestartMode = invalid # multiple values RestartMode = direct normal ###### runtime directory preserve [Service] RuntimeDirectoryPreserve = restart RuntimeDirectoryPreserve = true RuntimeDirectoryPreserve = false RuntimeDirectoryPreserve = yes RuntimeDirectoryPreserve = no ## invalid values RuntimeDirectoryPreserve = invalid # multiple values RuntimeDirectoryPreserve = restart no ###### secure bits list [Service] SecureBits = keep-caps SecureBits = keep-caps-locked SecureBits = no-setuid-fixup SecureBits = no-setuid-fixup-locked SecureBits = noroot SecureBits = noroot-locked SecureBits = keep-caps noroot-locked \ no-setuid-fixup ## invalid values SecureBits = invalid ###### security [Unit] ConditionSecurity = apparmor ConditionSecurity = audit ConditionSecurity = ima ConditionSecurity = selinux ConditionSecurity = smack ConditionSecurity = tomoyo ConditionSecurity = tpm2 ConditionSecurity = uefi-secureboot ## invalid values ConditionSecurity = invalid # multiple values ConditionSecurity = invalid selinux ConditionSecurity = apparmor selinux ###### service type [Service] Type = dbus Type = exec Type = forking Type = idle Type = notify Type = oneshot Type = simple ## invalid values Type = invalid # multiple values Type = exec forking ###### signal [Service] KillSignal = SIGABRT KillSignal = SIGALRM KillSignal = SIGBUS KillSignal = SIGCHLD KillSignal = SIGCLD KillSignal = SIGCONT KillSignal = SIGEMT KillSignal = SIGFPE KillSignal = SIGHUP KillSignal = SIGILL KillSignal = SIGINFO KillSignal = SIGINT KillSignal = SIGIO KillSignal = SIGIOT KillSignal = SIGKILL KillSignal = SIGLOST KillSignal = SIGPIPE KillSignal = SIGPOLL KillSignal = SIGPROF KillSignal = SIGPWR KillSignal = SIGQUIT KillSignal = SIGSEGV KillSignal = SIGSTKFLT KillSignal = SIGSTOP KillSignal = SIGSYS KillSignal = SIGTERM KillSignal = SIGTRAP KillSignal = SIGTSTP KillSignal = SIGTTIN KillSignal = SIGTTOU KillSignal = SIGUNUSED KillSignal = SIGURG KillSignal = SIGUSR1 KillSignal = SIGUSR2 KillSignal = SIGVTALRM KillSignal = SIGWINCH KillSignal = SIGXCPU KillSignal = SIGXFSZ ## invalid values KillSignal = SIG_INVALID ###### socket bind rule [Service] SocketBindAllow = any SocketBindAllow = ipv4: SocketBindAllow = ipv4:tcp: SocketBindAllow = ipv4:tcp:12345 SocketBindAllow = ipv4:tcp:1-123 SocketBindAllow = ipv6:udp:1-123 SocketBindAllow = ipv6: udp: 1 - 123 SocketBindAllow = tcp: SocketBindAllow = 12345 SocketBindAllow = 123-456 ## invalid values SocketBindAllow = ipv4 : SocketBindAllow = ipv5:tcp: SocketBindAllow = ipv4:udcp: SocketBindAllow = tcp:ipv4 SocketBindAllow = ipv4:tcp: 12345 # multiple values SocketBindAllow = any ipv4: ###### socket protocol [Socket] SocketProtocol = sctp SocketProtocol = udplite ## invalid values SocketProtocol = invalid # multiple values SocketProtocol = sctp udplite ###### standard input [Service] StandardInput = data StandardInput = fd StandardInput = fd:some_name StandardInput = file:/some/absolute/path StandardInput = null StandardInput = socket StandardInput = tty StandardInput = tty-fail StandardInput = tty-force ## invalid values StandardInput = invalid # multiple values StandardInput = null tty StandardInput = file:/some/absolute/path socket # no absolute path immediately after `file:` StandardInput = file: StandardInput = file:some//path StandardInput = file: /some/absolute/path ###### standard output [Service] # NOTE: Option StandardError accepts the same values. StandardOutput = append:/some/absolute/path StandardOutput = fd StandardOutput = fd:some_name StandardOutput = file:/some/absolute/path StandardOutput = inherit StandardOutput = journal StandardOutput = journal+console StandardOutput = kmsg StandardOutput = kmsg+console StandardOutput = null StandardOutput = socket StandardOutput = truncate:/some/absolute/path StandardOutput = tty ## invalid values StandardOutput = invalid StandardOutput = syslog # no absolute path immediately after append:, file: StandardOutput = append: StandardOutput = append:some/relative/path StandardOutput = append: /some/relative/path StandardOutput = file: StandardOutput = file:some/relative/path StandardOutput = file: /some/relative/path # multiple values StandardOutput = null tty StandardOutput = file:/some/absolute/path socket ###### system call architecture [Service] SystemCallArchitectures = mips64-le-n32 SystemCallArchitectures = mips64-n32 SystemCallArchitectures = native SystemCallArchitectures = x32 # all values from "architecture" are also valid SystemCallArchitectures = alpha \ mips sparc ## invalid values SystemCallArchitectures = invalid ###### system call errno [Service] SystemCallErrorNumber = kill SystemCallErrorNumber = log # from man errno(3) SystemCallErrorNumber = EACCES SystemCallErrorNumber = EADDRINUSE SystemCallErrorNumber = EADDRNOTAVAIL SystemCallErrorNumber = EAFNOSUPPORT SystemCallErrorNumber = EAGAIN SystemCallErrorNumber = EALREADY SystemCallErrorNumber = EBADE SystemCallErrorNumber = EBADF SystemCallErrorNumber = EBADFD SystemCallErrorNumber = EBADMSG SystemCallErrorNumber = EBADR SystemCallErrorNumber = EBADRQC SystemCallErrorNumber = EBADSLT SystemCallErrorNumber = EBUSY SystemCallErrorNumber = ECANCELED SystemCallErrorNumber = ECHILD SystemCallErrorNumber = ECHRNG SystemCallErrorNumber = ECOMM SystemCallErrorNumber = ECONNABORTED SystemCallErrorNumber = ECONNREFUSED SystemCallErrorNumber = ECONNRESET SystemCallErrorNumber = EDEADLK SystemCallErrorNumber = EDEADLOCK SystemCallErrorNumber = EDESTADDRREQ SystemCallErrorNumber = EDOM SystemCallErrorNumber = EDQUOT SystemCallErrorNumber = EEXIST SystemCallErrorNumber = EFAULT SystemCallErrorNumber = EFBIG SystemCallErrorNumber = EHOSTDOWN SystemCallErrorNumber = EHOSTUNREACH SystemCallErrorNumber = EHWPOISON SystemCallErrorNumber = EIDRM SystemCallErrorNumber = EILSEQ SystemCallErrorNumber = EINPROGRESS SystemCallErrorNumber = EINTR SystemCallErrorNumber = EINVAL SystemCallErrorNumber = EIO SystemCallErrorNumber = EISCONN SystemCallErrorNumber = EISDIR SystemCallErrorNumber = EISNAM SystemCallErrorNumber = EKEYEXPIRED SystemCallErrorNumber = EKEYREJECTED SystemCallErrorNumber = EKEYREVOKED SystemCallErrorNumber = EL2HLT SystemCallErrorNumber = EL2NSYNC SystemCallErrorNumber = EL3HLT SystemCallErrorNumber = EL3RST SystemCallErrorNumber = ELIBACC SystemCallErrorNumber = ELIBBAD SystemCallErrorNumber = ELIBEXEC SystemCallErrorNumber = ELIBMAX SystemCallErrorNumber = ELIBSCN SystemCallErrorNumber = ELNRNG SystemCallErrorNumber = ELOOP SystemCallErrorNumber = EMEDIUMTYPE SystemCallErrorNumber = EMFILE SystemCallErrorNumber = EMLINK SystemCallErrorNumber = EMSGSIZE SystemCallErrorNumber = EMULTIHOP SystemCallErrorNumber = ENAMETOOLONG SystemCallErrorNumber = ENETDOWN SystemCallErrorNumber = ENETRESET SystemCallErrorNumber = ENETUNREACH SystemCallErrorNumber = ENFILE SystemCallErrorNumber = ENOANO SystemCallErrorNumber = ENOBUFS SystemCallErrorNumber = ENODATA SystemCallErrorNumber = ENODEV SystemCallErrorNumber = ENOENT SystemCallErrorNumber = ENOEXEC SystemCallErrorNumber = ENOKEY SystemCallErrorNumber = ENOLCK SystemCallErrorNumber = ENOLINK SystemCallErrorNumber = ENOMEDIUM SystemCallErrorNumber = ENOMEM SystemCallErrorNumber = ENOMSG SystemCallErrorNumber = ENONET SystemCallErrorNumber = ENOPKG SystemCallErrorNumber = ENOPROTOOPT SystemCallErrorNumber = ENOSPC SystemCallErrorNumber = ENOSR SystemCallErrorNumber = ENOSTR SystemCallErrorNumber = ENOSYS SystemCallErrorNumber = ENOTBLK SystemCallErrorNumber = ENOTCONN SystemCallErrorNumber = ENOTDIR SystemCallErrorNumber = ENOTEMPTY SystemCallErrorNumber = ENOTRECOVERABLE SystemCallErrorNumber = ENOTSOCK SystemCallErrorNumber = ENOTSUP SystemCallErrorNumber = ENOTTY SystemCallErrorNumber = ENOTUNIQ SystemCallErrorNumber = ENXIO SystemCallErrorNumber = EOPNOTSUPP SystemCallErrorNumber = EOVERFLOW SystemCallErrorNumber = EOWNERDEAD SystemCallErrorNumber = EPERM SystemCallErrorNumber = EPFNOSUPPORT SystemCallErrorNumber = EPIPE SystemCallErrorNumber = EPROTO SystemCallErrorNumber = EPROTONOSUPPORT SystemCallErrorNumber = EPROTOTYPE SystemCallErrorNumber = ERANGE SystemCallErrorNumber = EREMCHG SystemCallErrorNumber = EREMOTE SystemCallErrorNumber = EREMOTEIO SystemCallErrorNumber = ERESTART SystemCallErrorNumber = ERFKILL SystemCallErrorNumber = EROFS SystemCallErrorNumber = ESHUTDOWN SystemCallErrorNumber = ESOCKTNOSUPPORT SystemCallErrorNumber = ESPIPE SystemCallErrorNumber = ESRCH SystemCallErrorNumber = ESTALE SystemCallErrorNumber = ESTRPIPE SystemCallErrorNumber = ETIME SystemCallErrorNumber = ETIMEDOUT SystemCallErrorNumber = ETOOMANYREFS SystemCallErrorNumber = ETXTBSY SystemCallErrorNumber = EUCLEAN SystemCallErrorNumber = EUNATCH SystemCallErrorNumber = EUSERS SystemCallErrorNumber = EWOULDBLOCK SystemCallErrorNumber = EXDEV SystemCallErrorNumber = EXFULL SystemCallErrorNumber = 1 SystemCallErrorNumber = 12 SystemCallErrorNumber = 123 SystemCallErrorNumber = 1234 SystemCallErrorNumber = 2 SystemCallErrorNumber = 23 SystemCallErrorNumber = 234 SystemCallErrorNumber = 2345 SystemCallErrorNumber = 3 SystemCallErrorNumber = 34 SystemCallErrorNumber = 345 SystemCallErrorNumber = 3456 SystemCallErrorNumber = 3999 SystemCallErrorNumber = 4000 SystemCallErrorNumber = 4009 SystemCallErrorNumber = 4019 SystemCallErrorNumber = 4089 SystemCallErrorNumber = 4095 ## invalid values SystemCallErrorNumber = invalid SystemCallErrorNumber = -12 SystemCallErrorNumber = 0.12 # out of range SystemCallErrorNumber = 0 SystemCallErrorNumber = 4096 SystemCallErrorNumber = 5000 # multiple values SystemCallErrorNumber = ESPIPE EUCLEAN SystemCallErrorNumber = 123 EUCLEAN ###### time span [Timer] # without unit OnBootSec = 15 # micro second OnBootSec = 123 usec OnBootSec = 123us # using UTF-8 "Micro Sign" U+00B5 µ µ µ OnBootSec = 123 µs # using UTF-8 "Greek Small Letter Mu" U+03BC μ μ μ OnBootSec = 123 μs # milli second OnBootSec = 123 msec OnBootSec = 123ms # second OnBootSec = 74 s OnBootSec = 2sec OnBootSec = 12 second OnBootSec = 1 seconds # minute OnBootSec = 342 m OnBootSec = 2min OnBootSec = 7 minute OnBootSec = 1 minutes # hour OnBootSec = 2 h OnBootSec = 48 hr OnBootSec = 2hour OnBootSec = 2hours # day OnBootSec = 2 d OnBootSec = 1 day OnBootSec = 7 days # week OnBootSec = 2 w OnBootSec = 123 week OnBootSec = 0 weeks # month OnBootSec = 12 M OnBootSec = 7 month OnBootSec = 1 months # year OnBootSec = 1y OnBootSec = 123year OnBootSec = 12 years # combined OnBootSec = 55s500ms OnBootSec = 300ms20s 5day OnBootSec = 123 5 days 1m 12 1sec 123 \ 23 msec 13 1us # multiple hours OnBootSec = 7hr 2hr \ 1d 2w ## invalid values # mi is invalid OnBootSec = 1mi # hs is invalid OnBootSec = 2hs # ds is invalid OnBootSec = 7 ds 1y # unit without amount OnBootSec = 12 min sec OnBootSec = min 1 sec # invalid unit OnBootSec = 12foo 1 bar ###### timeout # all values from time span are valid [Unit] JobTimeoutSec = 0 JobTimeoutSec = 12345 JobTimeoutSec = 123 5 days 1m 12 1sec 123\ 23 msec 13 1us JobTimeoutSec = infinity ## invalid values JobTimeoutSec = invalid JobTimeoutSec = inf JobTimeoutSec = -10 JobTimeoutSec = 0.235 ###### timestamping [Socket] Timestamping = ns Timestamping = nsec Timestamping = off Timestamping = us Timestamping = usec # using UTF-8 "Micro Sign" U+00B5 µ µ µ Timestamping = µs # using UTF-8 "Greek Small Letter Mu" U+03BC μ μ μ Timestamping = μs ## invalid values Timestamping = nanosec # multiple values Timestamping = nsec off ###### unit [Path] #### names Unit = some-name.service Unit = some.name.service Unit = some:name.service Unit =<EMAIL_ADDRESS>Unit =<EMAIL_ADDRESS>Unit =<EMAIL_ADDRESS>Unit =<EMAIL_ADDRESS>Unit = some@other:instance.service Unit = some<EMAIL_ADDRESS>Unit =<EMAIL_ADDRESS>Unit =<EMAIL_ADDRESS>Unit =<EMAIL_ADDRESS>Unit = dev-disk-by\x2duuid-5af23b\x2dfde6\x2d424e\x2da1bb\x2de88bc.swap ## invalid names # \x2x is an invalid escape as 2x is no hex number Unit = dev-disk-by\x2xuuid-5af23b\x2dfde6\x2d424e\x2da1bb\x2de88bc.swap #### extensions Unit = some.automount Unit = some.device Unit = some.mount Unit = some.service Unit = some.socket Unit = some.slice Unit = some.swap Unit = some.target ## invalid extension Unit = some.invalid # incomplete unit, missing extension Unit = some. # multiple values Unit = some.service some-other.service Unit = some.service.service \ some.other.service.service ###### unit list [Unit] #### names After = some.service.service \ some.other.service.service \<EMAIL_ADDRESS>\<EMAIL_ADDRESS>## invalid values # incomplete unit, missing extension After = some. \ some.service \ some-other.service ###### unit list socket [Service] Sockets = some.socket<EMAIL_ADDRESS>## invalid values Sockets = some.service Sockets = some.service some.socket ###### unit service [Socket] Service = some.service Service =<EMAIL_ADDRESS>## invalid values Service = some.invalid # other unit types Service = some.socket Service = some.target # multiple values Service = some.service other.service ###### unit slice [Service] Slice = some.slice Slice =<EMAIL_ADDRESS>## invalid values # other unit types Slice = some.service Slice = some.target # multiple values Slice = some.slice other.slice ###### utmp mode [Service] UtmpMode = init UtmpMode = login UtmpMode = user ## invalid values UtmpMode = invalid # multiple values UtmpMode = login user ###### variable assignments [Service] Environment = DISPLAY=:%i Environment = XAUTHORITY=%t/Xauthority.%i var1=15 \ "var2=value with spaces" EMPTY= Environment = XDG_VTNR=vt%i LogExtraFields = NAME=VALUE ###### virtualization [Unit] ConditionVirtualization = acrn ConditionVirtualization = bhyve ConditionVirtualization = bochs ConditionVirtualization = docker ConditionVirtualization = kvm ConditionVirtualization = lxc ConditionVirtualization = lxc-libvirt ConditionVirtualization = microsoft ConditionVirtualization = openvz ConditionVirtualization = oracle ConditionVirtualization = parallels ConditionVirtualization = qemu ConditionVirtualization = qnx ConditionVirtualization = rkt ConditionVirtualization = sre ConditionVirtualization = systemd-nspawn ConditionVirtualization = uml ConditionVirtualization = vmware ConditionVirtualization = wsl ConditionVirtualization = xen ConditionVirtualization = zvm # using boolean ConditionVirtualization = true # using generic type ConditionVirtualization = container ConditionVirtualization = vm # private users ConditionVirtualization = private-users # negated ConditionVirtualization = !vmware ## invalid values ConditionVirtualization = invalid ConditionVirtualization = invalid vmware # multiple values ConditionVirtualization = xen vmware ###### weight [Service] # integer 1..10000 IOWeight = 1 IOWeight = 12 IOWeight = 123 IOWeight = 1234 IOWeight = 1234 IOWeight = 10000 ## invalid values IOWeight = -1 IOWeight = 0 IOWeight = 10001 IOWeight = 12345 IOWeight = 12.3 IOWeight = invalid # multiple values IOWeight = 1 10000 ###### working directory [Service] WorkingDirectory = ~ WorkingDirectory = - ~ WorkingDirectory = %h WorkingDirectory = /some/absolute/path WorkingDirectory = -/some/absolute-path WorkingDirectory = - /some/absolute/path ## invalid values # using `-` without a path WorkingDirectory = - # multiple paths WorkingDirectory = ~ /some/absolute/path WorkingDirectory = /some/absolute/path ~ WorkingDirectory = /some/absolute/path /some/other/path WorkingDirectory = - - /some/absolute/path


Liquid Nitrogen Cannon
In a typical launch, the explosive force of a plastic 2-liter "soda pop" bottle, rupturing under pressure from evaporating liquid nitrogen (LN2), sends another 2-liter bottle filled with water over 400 feet into the air.
Such experiments help demonstrate various principles of physics, engineering, and chemistry, including pressure, evaporation, Newton's laws of motion, ballistic motion, etc. They also provide opportunities for campers to predict and measure force, altitude, time aloft, velocity, and acceleration.
This and other liquid nitrogen experiments have traditionally been an exciting "learning experience" at Astronomy Camp. In one such activity, students become engineers and consider the design of a spaceship for traveling to the cold temperatures (-320 °F) at Saturn.
Such experiments help demonstrate various principles of physics, engineering, and chemistry, including pressure, evaporation, Newton's laws of motion, ballistic motion, etc. They also provide opportunities for campers to predict and measure force, altitude, time aloft, velocity, and acceleration.
This and other liquid nitrogen experiments have traditionally been an exciting "learning experience" at Astronomy Camp. In one such activity, students become engineers and consider the design of a spaceship for traveling to the cold temperatures (-320 °F) at Saturn.
Home | Information | Registration | Articles | Links
All Images, Media and Content - Copyright © 2019 Astronomy Camp
Site Design by Jacob Omann. Maintained by Astronomy Camp. Updated November 15, 2018
All Images, Media and Content - Copyright © 2019 Astronomy Camp
Site Design by Jacob Omann. Maintained by Astronomy Camp. Updated November 15, 2018


Applying these changes will apply directly to the App.
Are you sure you want to apply these changes?
Changes have been saved
Ok
Are you sure you want to logout?


blackjok3r
16-Dec-18 12:43 PM
becuase hte wallet is broken... I have ben trying to work out hw to fix it for weeks
you just need to let it rescan
I tried to disable the rescan for staked chains ... but that made it worse
just have to let it rescan
there is nothing you can do
it only happens with huge amounts of utxos from what I can tell.


Fork me on GitHub
Push Notifications
Demo by
Dom Farolino
This page must be accessed using HTTPS or via localhost.
Subscribe
Notify me
Click to see subscription details
Endpoint + Device token:
Public Key:
Auth Secret:


15 Aug 2014
You may or may not know that Razor, the bare-metal lifecycle tool, has forked from its original bits. This is a good thing, but it's still really early days on the new forks, so we'll see ultimately what plays out.
The Puppet-Labs "Razor-Server" fork can be found here. If you want to work with it, or test it locally, you can use the bits written by Egle here.
Hanlon, the CSC fork here, is being perused by Tom McSweeney who helped get the original razor off the ground.
To help me work with it and contribute some, I've built a small Vagrant environment (largely basd on the Vagrant environment for 'the other' razor.).
Vagrant Up Hanlon
To get started, clone the repo and vagrant up, like so:
git clone https://github.com/bunchc/vagrant-hanlon.git
cd vagrant-hanlon
vagrant up
What this does during the vagrant up process is:
- Install dnsmasq
- Configure IPtables for NAT
- Installs Mongodb
- Installs Java
- Installs RBENV
- Installs both jruby and ruby 1.9.3
- Downloads Hanlon
- Starts Puma (to run Hanlon)
- Pulls down a few images to add to Hanlon
Once you have Hanlon running, command wise it works very similar to the old Razor. That is:
hanlon node
hanlon policy
hanlon image
Summary
In this post, you cloned and started to work with Hanlon, one of the derivatives of the Razor bare-metal provisioning framework.
14 Aug 2014
A while ago I posted about my markdown workflow. While that workflow was decent and worked for a goodly little while, it left quite a bit to be desired. Specifically, I the posting process into Wordpress was cumbersome at best.
A New Blog Engine
Like I said above, working with Wordpress and markdown was cumbersome and then some. So it was time for something new. At first I was going to use similar to this, which is actually what is in use on the openstackcookbook.com site. It has the following benefits:
- Posts are written in Markdown
- Integrated with gh-pages
- Straighforward publishing process
git push origin master
It was almost what I needed. In the end I went with Hugo. What Hugo added was some pluggable themes and templates. Also the ability to run locally before pushing to github.
To setup Hugo on github, use this.
Current Workflow
My current workflow needed some help then. I kept the same sublime text plugins, that is:
- MarkdownEditing
- This has a number of really handy keyboard bindings. It also has some decent highlighting and what not.
- Markdown Preview
- This one allows me to go from Markdown into what it’ll look like on the web.
- Markdown TOC
- This lets me go from a basic set of sections and files into a more full fledged table of contents.
Additionally, to create a new post, I modified the Rakefile found here, to look like this:
require 'fileutils'
task :post do
title = ENV['title'] || "new-post"
tags = ENV['tags'] || ''
make_img_dir = ENV['imgdir'] || false
date = (ENV['date'] ? Time.parse(ENV['date']) : Time.now).strftime('%Y-%m-%d')
filename = File.join('.', "#{Time.now.strftime('%Y-%m-%d')}-#{title.strip.gsub(' ', '-').gsub(/[^\w-]/, '')}.md")
open(filename, 'w') do |post|
post.puts "---"
post.puts "title: \"#{title}\""
post.puts "date: #{Time.now.strftime('%Y-%m-%d')}"
post.puts "categories: "
post.puts "---"
post.puts "\nYour content here."
if make_img_dir
img_dir = File.basename(filename.chomp(File.extname(filename)))
FileUtils.mkdir_p("../images/posts/#{img_dir}")
post.puts "\n" * 5
post.puts "[imgdir]: /images/posts/#{img_dir}/"
end
end
end
So creating a new post goes like this:
bunchc: blog/content/posts$ rake post title="Title Here"
In turn, that creates a YYYY-MM-DD-Title-Here.md file for editing in sublime. It also adds the metadata section at the top of the file for me:
---
title: "Updated Blog / Markdown workflow"
date: 2014-08-14
categories:
---
From there, I write the file, save the file, and run ./deploy.sh
from the Hugo installer linked earlier. That handles all the pushing and bits to git.
Summary
The gist of it is, Wordpress was a bit much and a bit heavy for what I needed. Hugo, Markdown, and GitHub Pages gave me a streamlined process that looks decent for posting.
14 Aug 2014
OpenStack Cells allow you to break up Nova into smaller domains. In turn, this allows for a number of interesting things. Not the least of which is scale.
From the OpenStack.org docs: Note I've added the bold on some important points.
Cells functionality enables you to scale an OpenStack Compute cloud in a more distributed fashion without having to use complicated technologies like database and message queue clustering. It supports very large deployments.
When this functionality is enabled, the hosts in an OpenStack Compute cloud are partitioned into groups called cells. Cells are configured as a tree. The top-level cell should have a host that runs a nova-api service, but no nova-compute services. Each child cell should run all of the typical nova-* services in a regular Compute cloud except for nova-api. You can think of cells as a normal Compute deployment in that each cell has its own database server and message queue broker.
So, in addition to breaking down at physical boundaries or failure domains, you can break nova-compute into smaller chunks based on DB and MQ scaling limits.
However, not all of us have multi-geo hundred plus node compute labs to play with... so how do we test out this functionality before hand? Devstack!
Getting Started
tl;dr - git clone https://github.com/bunchc/devstack-cells.git; cd devstack-cells; vagrant up
, and go to "Configuring and Creating Cells"
To get started, you'll need the following:
- virtualbox (fusion or workstation work just as well)
- a minimum of two Ubuntu 14.04 VM with:
- About 2GB ram
- 2x networks
- eth0 = NAT
- eth1 = host only
Both Nodes
Once you have that taken care of, on each node we need to create a stack user:
sudo adduser --disabled-password --gecos "" stack
echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Parent Node
Time to Download devstack:
sudo su - stack
git clone -b stable/icehouse https://github.com/openstack-dev/devstack
Note the sudo command. Everything from this point is done as stack
Next, let's make the local.conf file:
```
echo "
[[local|localrc]]
ADMINPASSWORD=$ADMINPASSWORD
DATABASEPASSWORD=$ADMINPASSWORD
RABBITPASSWORD=$ADMINPASSWORD
SERVICEPASSWORD=$ADMINPASSWORD
SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50
GITBASE=${GITBASE:-https://git.openstack.org}
Cells!
ENABLEDSERVICES+=,n-cell,n-api-meta
DISABLEDSERVICE+=,n-cpu,n-net,n-sch
Neutron - Networking Service
If Neutron is not declared the old good nova-network will be used
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-vpn,q-fwaas
Neutron Stuff
OVSVLANRANGES=RegionOne:1:4000
OVSENABLETUNNELING=False
Images
32bit image (~660MB)
IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F19-i386-cfntools.qcow2"
64bit image (~640MB)
IMAGEURLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F19-x8664-cfntools.qcow2"
IMAGEURLS+=",http://mirror.chpc.utah.edu/pub/fedora/linux/releases/20/Images/x8664/Fedora-x8664-20-20131211.1-sda.qcow2"
IMAGEURLS+=",http://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-uec.tar.gz"
Output
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOGCOLOR=False
SCREENLOGDIR=/opt/stack/logs
" | tee -a /home/stack/devstack/local.conf
```
The important bit for cells in this file are:
ENABLED_SERVICES+=,n-cell,n-api-meta
DISABLED_SERVICE+=,n-cpu,n-net,n-sch
This enables the cell service, and the nova-api metadata service. It then disables compute, nova-networking, and the scheduler. Those tasks will be handled on the children.
With that out of the way run ./stack.sh
and grab a coffee. When it completes, add the following to /etc/nova/nova.conf
:
[cells]
enable=True
name=api
cell_type=api
Finally, restart the n-api serivice.
Child Node
Time to Download devstack:
sudo su - stack
git clone -b stable/icehouse https://github.com/openstack-dev/devstack
Note the sudo command. Everything from this point is done as stack
Next, on the child node, we create a local.conf file
```
cd devstack
echo "
[[local|localrc]]
ADMINPASSWORD=$ADMINPASSWORD
DATABASEPASSWORD=$ADMINPASSWORD
RABBITPASSWORD=$ADMINPASSWORD
SERVICEPASSWORD=$ADMINPASSWORD
SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50
HOSTIP=
SERVICEHOST=
MYSQLHOST=$SERVICEHOST
RABBITHOST=$SERVICEHOST
QHOST=$SERVICEHOST
GLANCEHOSTPORT=$SERVICEHOST:9292
GITBASE=${GITBASE:-https://git.openstack.org}
Cells!
ENABLEDSERVICES+=,n-cell
DISABLEDSERVICE+=,n-api,key,g-api
Neutron - Networking Service
If Neutron is not declared the old good nova-network will be used
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-vpn,q-fwaas
Neutron Stuff
OVSVLANRANGES=RegionOne:1:4000
OVSENABLETUNNELING=False
Output
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOGCOLOR=False
SCREENLOGDIR=/opt/stack/logs
" | tee -a /home/stack/devstack/local.conf
```
The important bit for cells is:
ENABLED_SERVICES+=,n-cell
DISABLED_SERVICE+=,n-api,key,g-api
This enables the cell service and turns of keystone along with nova-api and glance-api services. Those in turn will be handled by the parent.
Next, run ./stack.sh
and grab a coffee. When it completes, add the following to /etc/nova/nova.conf
[cells]
enable=True
name=cell1
cell_type=comput
Configuring and Creating Cells
Ok, what happened above was we got two nodes up and running and ready to go with Devstack and the prerequsite services for cells. Now we actually have to actuall make the cells. To do that:
Parent
nova-manage cell create --name=cell1 --cell_type=child --username=guest --password=password --hostname=<child ip> --port=5672 --virtual_host=/ --woffset=1.0 --wscale=1.0
Then in screen, find the n-cell-* services and restart them.
Child
nova-manage cell create --name=parent --cell_type=parent --username=guest --password=password --hostname=<parent ip> --port=5672 --virtual_host=/ --woffset=1.0 --wscale=1.0
Then in screen, find the n-cell-* services and restart them.
Conclusion
In this post, we created two virtual machines, installed Devstack while enabling nova-cells. Finally, we actually configured the cells to talk to one another. This post was largely an amalgamation of two other posts highlighted in the resources section
Resources


You have successfully registered. Please check your email for verification link.
The information entered does not meet the requirements! Please try again.
You will be redirected shortly. Please wait...
Email address has not been verified. Please verify and try again.
Incorrect details. Login failed.
This is the last slide of the lecture.


Create Your Spy!
Espionage Information
Full Name:
Codename:
Personal Information
Age:
Gender:
Male
Female
Non-binary
Others
Characteristics
Hair Color:
Eye Color:
Submitting will now take you to the first puzzle!
I want to go back!


{{goal.description}}
Remaining Work: {{goal.remainingWork}}
Estimated Work: {{goal.estimatedWork}}
Phase: {{goal.phase}}
Due {{goal.dueDate}}
Progress: {{goal.progress}}
Justification: {{goal.justification}}
Ideal Outcome: {{goal.idealOutcome}}
Scope: {{goal.scope}}
Blocking Reason: {{goal.blockingReason}}
Replacement/Workaround: {{goal.replacement}}
isCompleted: {{goal.isCompleted}}
isReoccuring: {{goal.isReoccuring}}
Priority: {{goal.priority}}


{% include '_flashes.html' %} {% include 'loginlogout.html' %}
Authorize Or Re-authorize Fitbit
Hi {{ current_user.username }} I tried to access your fitbit user profile: {{ user_profile }}!


Charts
The charts below shows us the spendings of G20 Nations in Health, Military and Education sector ad compare with the country's GDP
Military Spending per Capita vs GDP per capita
There is an increase in per person military spending for Saudi Arabia over the years
Education Spending per Capita vs GDP per capita
Even though United States is spending more on education, Australia's Education spending per capita is highest.
Health Spending per Capita vs GDP per capita
US is spending more on Health capita over the years


BCTimemap
This is a JavaScript script created by
comBC.eu.
Processing...
Send data to us and we will show them on a map.
biuro@combc.pl


There's a drink for every mood or occasion. Find your favorite cocktail recipes here at Commonwealth Cocktails. Or think outside the glass and try a brand new drink. Your new favorite could be a shake or stir away.
At Commonwealth Cocktails we’ve compiled an extensive library of information about an array of liquor brands and spirits. Whether you're reading about a favorite bourbon or a new craft gin, you just might learn a thing or two.
This is what it is all about. The Super Mega Cocktail Search. It all started because of this. We wanted a way to find the right cocktail. At the right time. With the right ingredients, that we had on hand.
Commonwealth Cocktails is an open source project written in Go to discover new ways to create and present cocktails. Commonwealth Cocktails includes OAuth, Social Media, GCP, AWS, and more on a practical real-world dataset.


This is an index page
What is your name?
What is your age?
What is your gender?
What is your Fev food ?
Click here to go to the about page


| The results of
the measurements show the wide bandwidth fading pattern of the channel. From
this we can see nulls in the spectrum (shown in dark red) and the peaks in
the response (in yellow white). The dotted line shows the mean path loss. |
|
| This result
shows the response for a Line Of Sight (LOS) transmission. As a result of
this the direct signal tends to dominate and consequently the delay spread of
the channel is low. When the delay spread of the channel is low the frequency
separation between the nulls tends to be large (coherence bandwidth), as we
can see here. At 95 cm along there are no nulls even over a bandwidth of 70
MHz. |


Redeem TTS with
!setup
as the text.
Cancel
Create a
browser source
or use a
custom browser dock
for the URL in OBS Studio.
Copy URL
Currently not logged in
Which TTS voice?
Default: Brian
Amy
Brian
Emma
Geraint
Ivy
Joanna
Justin
Kendra
Kimberly
Raveena
Russell
Salli
Nicole
Ready to go!
Asset 2
Made by IPat
?
Tutorial


Company Overview
Bodhi Tree Multimedia Pvt. Ltd. was incorporated in July 2013,
is based in Mumbai. The production house has been playing an iconic role as it is perennially changing theperspective of Indian viewers by bringing forth a distinctive line-up of youth-based shows.
The company has produced a robust line up of 8 shows since nception across varied genres and broadcasters. It has an impressive slate of upcoming
content pipeline.
Directors
|
Team
Sukesh
Motwani
Director
Sukesh functions as the Chief Creative Officer of the company in addition
Sukesh functions as the Chief Creative Officer of the company in addition to being the promoter.
His experience encompasses the entire gamut of the media business right from content production to broadcasting over a period of two decades. He has worked with the most leading media brands like Zee Television,UTV & Nimbus. His last held position was head of fiction programming in Zee TV.
Sukesh was also responsible for the launch of the Zee Youth GEC- Zee Next where he headed the content creation team. Sukesh has been involved in creation of more than 10,000 plus hours of content across all genres.
This includes close to 75 daily soaps in various capacities from conceptualising, writing,
creative direction & commissioning.
Sukesh
Motwani
Director
Sukesh functions as the Chief Creative Officer of the company in addition
Sukesh functions as the Chief Creative Officer of the company in addition to being the promoter.
His experience encompasses the entire gamut of the media business right from content production to broadcasting over a period of two decades. He has worked with the most leading media brands like Zee Television,UTV & Nimbus. His last held position was head of fiction programming in Zee TV.
Sukesh was also responsible for the launch of the Zee Youth GEC- Zee Next where he headed the content creation team. Sukesh has been involved in creation of more than 10,000 plus hours of content across all genres.
This includes close to 75 daily soaps in various capacities from conceptualising, writing,
creative direction & commissioning.
Bodhi Tree is headed by a panel of experts and technocrats whose combined experience forms the soul of this company.
The management team of the company comprises of the most experienced minds in the television content business that have a flourishing experience across content creation, production and broadcasting. Moreover, management team also enjoys good network of relationships with all major broadcasters and is presently engaged in discussions with most of them.
Sukesh
Motwani
Director
Sukesh functions as the Chief Creative Officer of the company in addition
aty Tree is headed by a panel of experts and technocrats whose combined experience forms the soul of this company.
The management team of the company comprises of the most experienced minds in the television content business that have a flourishing experience across content creation, production and broadcasting. Moreover, management team also enjoys good network of relationships with all major broadcasters and is presently engaged in discussions with most of them.
ongoing shows
|
upcoming shows
|
past shows
Big Magic
channel
tedi medi
family
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Director
Mr. Sukesh Motwani
Load more
Reach us here
BodhiTree Multimedia Pvt. Ltd
507, Reliable Business Centre, Jogeshwari (West), Mumbai - 400102, Maharashtra, India.
+90<PHONE_NUMBER> mail@bodhitree.com


Gulliver's Travels
by Jonathan Swift
Gulliver’s Travels (1726, amended 1735), officially Travels into Several Remote Nations of the World, is a novel by Jonathan Swift that is both a satire on human nature and a parody of the “travellers’ tales” literary sub-genre. It is widely considered Swift’s magnum opus (masterpiece) and is his most celebrated work, as well as one of the indisputable classics of English literature.
The book became tremendously popular as soon as it was published (Alexander Pope stated that “it is universally read, from the cabinet council to the nursery”), and it is likely that it has never been out of print since then. George Orwell declared it to be among the six most indispensable books in world literature. It is claimed the inspiration for Gulliver came from the sleeping giant profile of the Cavehill in Belfast.
Source: Swift, Jonathan. (1906). Gulliver's Travels. London; Routledge.
- Part One: A Voyage to Lilliput: Chapter 1
- The author gives some account of himself and family. His first inducements to travel. He is shipwrecked, and swims for his life. Gets safe on shore in the country of Lilliput; is made a prisoner, and carried up the country.
- Part One: A Voyage to Lilliput: Chapter 2
- The emperor of Lilliput, attended by several of the nobility, comes to see the author in his confinement. The emperor’s person and habit described. Learned men appointed to teach the author their language. He gains favour by his mild disposition. His pockets are searched, and his sword and pistols taken from him.
- Part One: A Voyage to Lilliput: Chapter 3
- The author diverts the emperor, and his nobility of both sexes, in a very uncommon manner. The diversions of the court of Lilliput described. The author has his liberty granted him upon certain conditions.
- Part One: A Voyage to Lilliput: Chapter 4
- Mildendo, the metropolis of Lilliput, described, together with the emperor’s palace. A conversation between the author and a principal secretary, concerning the affairs of that empire. The author’s offers to serve the emperor in his wars.
- Part One: A Voyage to Lilliput: Chapter 5
- The author, by an extraordinary stratagem, prevents an invasion. A high title of honour is conferred upon him. Ambassadors arrive from the emperor of Blefuscu, and sue for peace. The empress’s apartment on fire by an accident; the author instrumental in saving the rest of the palace.
- Part One: A Voyage to Lilliput: Chapter 6
- Of the inhabitants of Lilliput; their learning, laws, and customs; the manner of educating their children. The author’s way of living in that country. His vindication of a great lady.
- Part One: A Voyage to Lilliput: Chapter 7
- The author, being informed of a design to accuse him of high-treason, makes his escape to Blefuscu. His reception there.
- Part One: A Voyage to Lilliput: Chapter 8
- The author, by a lucky accident, finds means to leave Blefuscu; and, after some difficulties, returns safe to his native country.
- Part Two: A Voyage to Brobdingnag: Chapter 1
- A great storm described; the long boat sent to fetch water; the author goes with it to discover the country. He is left on shore, is seized by one of the natives, and carried to a farmer’s house. His reception, with several accidents that happened there. A description of the inhabitants.
- Part Two: A Voyage to Brobdingnag: Chapter 2
- A description of the farmer’s daughter. The author carried to a market-town, and then to the metropolis. The particulars of his journey.
- Part Two: A Voyage to Brobdingnag: Chapter 3
- The author sent for to court. The queen buys him of his master the farmer, and presents him to the king. He disputes with his majesty’s great scholars. An apartment at court provided for the author. He is in high favour with the queen. He stands up for the honour of his own country. His quarrels with the queen’s dwarf.
- Part Two: A Voyage to Brobdingnag: Chapter 4
- The country described. A proposal for correcting modern maps. The king’s palace; and some account of the metropolis. The author’s way of travelling. The chief temple described.
- Part Two: A Voyage to Brobdingnag: Chapter 5
- Several adventurers that happened to the author. The execution of a criminal. The author shows his skill in navigation.
- Part Two: A Voyage to Brobdingnag: Chapter 6
- Several contrivances of the author to please the king and queen. He shows his skill in music. The king inquires into the state of England, which the author relates to him. The king’s observations thereon.
- Part Two: A Voyage to Brobdingnag: Chapter 7
- The author’s love of his country. He makes a proposal of much advantage to the king, which is rejected. The king’s great ignorance in politics. The learning of that country very imperfect and confined. The laws, and military affairs, and parties in the state.
- Part Two: A Voyage to Brobdingnag: Chapter 8
- The king and queen make a progress to the frontiers. The author attends them. The manner in which he leaves the country very particularly related. He returns to England.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 1
- The author sets out on his third voyage. Is taken by pirates. The malice of a Dutchman. His arrival at an island. He is received into Laputa.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 2
- The humours and dispositions of the Laputians described. An account of their learning. Of the king and his court. The author’s reception there. The inhabitants subject to fear and disquietudes. An account of the women.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 3
- A phenomenon solved by modern philosophy and astronomy. The Laputians’ great improvements in the latter. The king’s method of suppressing insurrections.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 4
- The author leaves Laputa; is conveyed to Balnibarbi; arrives at the metropolis. A description of the metropolis, and the country adjoining. The author hospitably received by a great lord. His conversation with that lord.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 5
- The author permitted to see the grand academy of Lagado. The academy largely described. The arts wherein the professors employ themselves.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 6
- A further account of the academy. The author proposes some improvements, which are honourably received.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 7
- The author leaves Lagado: arrives at Maldonada. No ship ready. He takes a short voyage to Glubbdubdrib. His reception by the governor.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 8
- A further account of Glubbdubdrib. Ancient and modern history corrected.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 9
- The author returns to Maldonada. Sails to the kingdom of Luggnagg. The author confined. He is sent for to court. The manner of his admittance. The king’s great lenity to his subjects.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 10
- The Luggnaggians commended. A particular description of the Struldbrugs, with many conversations between the author and some eminent persons upon that subject.
- Part Three: A Voyage to Laputa, Balnibarbi, Luggnagg, Glubbdubdrib, and Japan: Chapter 11
- The author leaves Luggnagg, and sails to Japan. From thence he returns in a Dutch ship to Amsterdam, and from Amsterdam to England.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 1
- The author sets out as captain of a ship. His men conspire against him, confine him a long time to his cabin, and set him on shore in an unknown land. He travels up into the country. The Yahoos, a strange sort of animal, described. The author meets two Houyhnhnms.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 2
- The author conducted by a Houyhnhnm to his house. The house described. The author’s reception. The food of the Houyhnhnms. The author in distress for want of meat. Is at last relieved. His manner of feeding in this country.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 3
- The author studies to learn the language. The Houyhnhnm, his master, assists in teaching him. The language described. Several Houyhnhnms of quality come out of curiosity to see the author. He gives his master a short account of his voyage.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 4
- The Houyhnhnm’s notion of truth and falsehood. The author’s discourse disapproved by his master. The author gives a more particular account of himself, and the accidents of his voyage.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 5
- The author at his master’s command, informs him of the state of England. The causes of war among the princes of Europe. The author begins to explain the English constitution.
- A Voyage to the Country of the Houyhnhnms: Chapter 6
- A continuation of the state of England under Queen Anne. The character of a first minister of state in European courts.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 7
- The author’s great love of his native country. His master’s observations upon the constitution and administration of England, as described by the author, with parallel cases and comparisons. His master’s observations upon human nature.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 8
- The author relates several particulars of the YAHOOS. The great virtues of the HOUYHNHNMS. The education and exercise of their youth. Their general assembly.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 9
- A grand debate at the general assembly of the HOUYHNHNMS, and how it was determined. The learning of the HOUYHNHNMS. Their buildings. Their manner of burials. The defectiveness of their language.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 10
- The author’s economy, and happy life, among the Houyhnhnms. His great improvement in virtue by conversing with them. Their conversations. The author has notice given him by his master, that he must depart from the country. He falls into a swoon for grief; but submits. He contrives and finishes a canoe by the help of a fellow-servant, and puts to sea at a venture.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 11
- The author’s dangerous voyage. He arrives at New Holland, hoping to settle there. Is wounded with an arrow by one of the natives. Is seized and carried by force into a Portuguese ship. The great civilities of the captain. The author arrives at England.
- Part Four: A Voyage to the Country of the Houyhnhnms: Chapter 12
- The author’s veracity. His design in publishing this work. His censure of those travellers who swerve from the truth. The author clears himself from any sinister ends in writing. An objection answered. The method of planting colonies. His native country commended. The right of the crown to those countries described by the author is justified. The difficulty of conquering them. The author takes his last leave of the reader; proposes his manner of living for the future; gives good advice, and concludes.