2018-03-11 14:36:19 +03:00
s e r v i c e
2021-04-02 20:51:44 +03:00
[Unit]
2018-03-11 14:36:19 +03:00
After =
AllowIsolate =
AssertACPower =
AssertArchitecture =
2021-04-02 20:51:44 +03:00
AssertCPUs =
2018-03-11 14:36:19 +03:00
AssertCapability =
AssertControlGroupController =
AssertDirectoryNotEmpty =
2021-04-02 20:51:44 +03:00
AssertEnvironment =
2018-03-11 14:36:19 +03:00
AssertFileIsExecutable =
AssertFileNotEmpty =
AssertFirstBoot =
AssertGroup =
AssertHost =
AssertKernelCommandLine =
AssertKernelVersion =
2021-04-02 20:51:44 +03:00
AssertMemory =
2018-03-11 14:36:19 +03:00
AssertNeedsUpdate =
AssertPathExists =
AssertPathExistsGlob =
AssertPathIsDirectory =
2021-04-02 20:51:44 +03:00
AssertPathIsEncrypted =
2018-03-11 14:36:19 +03:00
AssertPathIsMountPoint =
AssertPathIsReadWrite =
AssertPathIsSymbolicLink =
AssertSecurity =
AssertUser =
AssertVirtualization =
2020-12-22 20:27:14 +03:00
BPFProgram =
2018-03-11 14:36:19 +03:00
Before =
2021-04-02 20:51:44 +03:00
BindTo =
2018-03-11 14:36:19 +03:00
BindsTo =
CollectMode =
ConditionACPower =
ConditionArchitecture =
2021-04-02 20:51:44 +03:00
ConditionCPUs =
2020-10-09 13:13:00 +03:00
ConditionFirmware =
2018-03-11 14:36:19 +03:00
ConditionCapability =
ConditionControlGroupController =
ConditionDirectoryNotEmpty =
2021-04-02 20:51:44 +03:00
ConditionEnvironment =
2018-03-11 14:36:19 +03:00
ConditionFileIsExecutable =
ConditionFileNotEmpty =
ConditionFirstBoot =
ConditionGroup =
ConditionHost =
ConditionKernelCommandLine =
ConditionKernelVersion =
2021-04-02 20:51:44 +03:00
ConditionMemory =
2018-03-11 14:36:19 +03:00
ConditionNeedsUpdate =
ConditionPathExists =
ConditionPathExistsGlob =
ConditionPathIsDirectory =
2021-04-02 20:51:44 +03:00
ConditionPathIsEncrypted =
2018-03-11 14:36:19 +03:00
ConditionPathIsMountPoint =
ConditionPathIsReadWrite =
ConditionPathIsSymbolicLink =
ConditionSecurity =
ConditionUser =
ConditionVirtualization =
Conflicts =
DefaultDependencies =
Description =
Documentation =
FailureAction =
2021-04-02 20:51:44 +03:00
FailureActionExitStatus =
2018-03-11 14:36:19 +03:00
IgnoreOnIsolate =
2021-04-02 20:51:44 +03:00
IgnoreOnSnapshot =
2018-03-11 14:36:19 +03:00
JobRunningTimeoutSec =
JobTimeoutAction =
JobTimeoutRebootArgument =
JobTimeoutSec =
JoinsNamespaceOf =
OnFailure =
2021-04-02 20:51:44 +03:00
OnFailureIsolate =
2018-03-11 14:36:19 +03:00
OnFailureJobMode =
2021-04-14 15:36:15 +03:00
OnSuccess =
OnSuccessJobMode =
2018-03-11 14:36:19 +03:00
PartOf =
2021-04-02 20:51:44 +03:00
PropagateReloadFrom =
PropagateReloadTo =
2018-03-11 14:36:19 +03:00
PropagatesReloadTo =
core: add new PropagateStopTo= dependency (and inverse)
This takes inspiration from PropagatesReloadTo=, but propagates
stop jobs instead of restart jobs.
This is defined based on exactly two atoms: UNIT_ATOM_PROPAGATE_STOP +
UNIT_ATOM_RETROACTIVE_STOP_ON_STOP. The former ensures that when the
unit the dependency is originating from is stopped based on user
request, we'll propagate the stop job to the target unit, too. In
addition, when the originating unit suddenly stops from external causes
the stopping is propagated too. Note that this does *not* include the
UNIT_ATOM_CANNOT_BE_ACTIVE_WITHOUT atom (which is used by BoundBy=),
i.e. this dependency is purely about propagating "edges" and not
"levels", i.e. it's about propagating specific events, instead of
continious states.
This is supposed to be useful for dependencies between .mount units and
their backing .device units. So far we either placed a BindsTo= or
Requires= dependency between them. The former gave a very clear binding
of the to units together, however was problematic if users establish
mounnts manually with different block device sources than our
configuration defines, as we there might come to the conclusion that the
backing device was absent and thus we need to umount again what the user
mounted. By combining Requires= with the new StopPropagatedFrom= (i.e.
the inverse PropagateStopTo=) we can get behaviour that matches BindsTo=
in every single atom but one: UNIT_ATOM_CANNOT_BE_ACTIVE_WITHOUT is
absent, and hence the level-triggered logic doesn't apply.
Replaces: #11340
2021-04-13 23:30:31 +03:00
PropagatesStopTo =
2018-03-11 14:36:19 +03:00
RebootArgument =
RefuseManualStart =
RefuseManualStop =
ReloadPropagatedFrom =
Requires =
RequiresMountsFor =
2021-04-02 20:51:44 +03:00
RequiresOverridable =
2018-03-11 14:36:19 +03:00
Requisite =
2021-04-02 20:51:44 +03:00
RequisiteOverridable =
2021-02-12 10:15:17 +03:00
SocketBindAllow =
SocketBindDeny =
2018-03-11 14:36:19 +03:00
SourcePath =
StartLimitAction =
StartLimitBurst =
2021-04-02 20:51:44 +03:00
StartLimitInterval =
2018-03-11 14:36:19 +03:00
StartLimitIntervalSec =
StopWhenUnneeded =
core: add new PropagateStopTo= dependency (and inverse)
This takes inspiration from PropagatesReloadTo=, but propagates
stop jobs instead of restart jobs.
This is defined based on exactly two atoms: UNIT_ATOM_PROPAGATE_STOP +
UNIT_ATOM_RETROACTIVE_STOP_ON_STOP. The former ensures that when the
unit the dependency is originating from is stopped based on user
request, we'll propagate the stop job to the target unit, too. In
addition, when the originating unit suddenly stops from external causes
the stopping is propagated too. Note that this does *not* include the
UNIT_ATOM_CANNOT_BE_ACTIVE_WITHOUT atom (which is used by BoundBy=),
i.e. this dependency is purely about propagating "edges" and not
"levels", i.e. it's about propagating specific events, instead of
continious states.
This is supposed to be useful for dependencies between .mount units and
their backing .device units. So far we either placed a BindsTo= or
Requires= dependency between them. The former gave a very clear binding
of the to units together, however was problematic if users establish
mounnts manually with different block device sources than our
configuration defines, as we there might come to the conclusion that the
backing device was absent and thus we need to umount again what the user
mounted. By combining Requires= with the new StopPropagatedFrom= (i.e.
the inverse PropagateStopTo=) we can get behaviour that matches BindsTo=
in every single atom but one: UNIT_ATOM_CANNOT_BE_ACTIVE_WITHOUT is
absent, and hence the level-triggered logic doesn't apply.
Replaces: #11340
2021-04-13 23:30:31 +03:00
StopPropagatedFrom =
2018-03-11 14:36:19 +03:00
SuccessAction =
2021-04-02 20:51:44 +03:00
SuccessActionExitStatus =
2021-04-14 16:24:08 +03:00
Upholds =
2018-03-11 14:36:19 +03:00
Wants =
2021-04-02 20:51:44 +03:00
[Install]
2018-03-11 14:36:19 +03:00
Alias =
2021-04-02 20:51:44 +03:00
Also =
DefaultInstance =
RequiredBy =
WantedBy =
[Service]
AllowedCPUs =
AllowedMemoryNodes =
AmbientCapabilities =
2018-03-11 14:36:19 +03:00
AppArmorProfile =
2021-04-02 20:51:44 +03:00
BindPaths =
BindReadOnlyPaths =
BlockIOAccounting =
BlockIODeviceWeight =
BlockIOReadBandwidth =
BlockIOWeight =
BlockIOWriteBandwidth =
BusName =
BusPolicy =
CPUAccounting =
2018-03-11 14:36:19 +03:00
CPUAffinity =
2021-04-02 20:51:44 +03:00
CPUQuota =
CPUQuotaPeriodSec =
2018-03-11 14:36:19 +03:00
CPUSchedulingPolicy =
CPUSchedulingPriority =
CPUSchedulingResetOnFork =
2021-04-02 20:51:44 +03:00
CPUShares =
CPUWeight =
2018-03-11 14:36:19 +03:00
CacheDirectory =
CacheDirectoryMode =
2021-04-02 20:51:44 +03:00
Capabilities =
CapabilityBoundingSet =
2018-03-11 14:36:19 +03:00
ConfigurationDirectory =
ConfigurationDirectoryMode =
2021-04-02 20:51:44 +03:00
CoredumpFilter =
DefaultMemoryLow =
DefaultMemoryMin =
Delegate =
DeviceAllow =
DevicePolicy =
DisableControllers =
DynamicUser =
2018-03-11 14:36:19 +03:00
Environment =
EnvironmentFile =
2021-04-02 20:51:44 +03:00
ExecCondition =
ExecPaths =
ExecReload =
ExecStart =
ExecStartPost =
ExecStartPre =
ExecStop =
ExecStopPost =
ExitType =
ExtensionImages =
FailureAction =
FileDescriptorStoreMax =
FinalKillSignal =
Group =
GuessMainPID =
IOAccounting =
IODeviceLatencyTargetSec =
IODeviceWeight =
IOReadBandwidthMax =
IOReadIOPSMax =
2018-03-11 14:36:19 +03:00
IOSchedulingClass =
IOSchedulingPriority =
2021-04-02 20:51:44 +03:00
IOWeight =
IOWriteBandwidthMax =
IOWriteIOPSMax =
IPAccounting =
IPAddressAllow =
IPAddressDeny =
IPCNamespacePath =
IPEgressFilterPath =
IPIngressFilterPath =
2018-03-11 14:36:19 +03:00
IgnoreSIGPIPE =
2021-04-02 20:51:44 +03:00
InaccessibleDirectories =
2018-03-11 14:36:19 +03:00
InaccessiblePaths =
KeyringMode =
2021-04-02 20:51:44 +03:00
KillMode =
2018-03-11 14:36:19 +03:00
KillSignal =
LimitAS =
LimitCORE =
LimitCPU =
LimitDATA =
LimitFSIZE =
LimitLOCKS =
LimitMEMLOCK =
LimitMSGQUEUE =
LimitNICE =
LimitNOFILE =
LimitNPROC =
LimitRSS =
LimitRTPRIO =
LimitRTTIME =
LimitSIGPENDING =
LimitSTACK =
2021-04-02 20:51:44 +03:00
LoadCredential =
2018-03-11 14:36:19 +03:00
LockPersonality =
LogExtraFields =
LogLevelMax =
2021-04-02 20:51:44 +03:00
LogNamespace =
2018-10-08 06:28:36 +03:00
LogRateLimitBurst =
2021-04-02 20:51:44 +03:00
LogRateLimitIntervalSec =
2018-03-11 14:36:19 +03:00
LogsDirectory =
LogsDirectoryMode =
2021-04-02 20:51:44 +03:00
ManagedOOMMemoryPressure =
ManagedOOMMemoryPressureLimit =
ManagedOOMPreference =
ManagedOOMSwap =
MemoryAccounting =
2018-03-11 14:36:19 +03:00
MemoryDenyWriteExecute =
2021-04-02 20:51:44 +03:00
MemoryHigh =
MemoryLimit =
MemoryLow =
MemoryMax =
MemoryMin =
MemorySwapMax =
MountAPIVFS =
2018-03-11 14:36:19 +03:00
MountFlags =
2021-04-02 20:51:44 +03:00
MountImages =
NUMAMask =
NUMAPolicy =
NetClass =
NetworkNamespacePath =
2018-03-11 14:36:19 +03:00
Nice =
2021-04-02 20:51:44 +03:00
NoExecPaths =
2018-03-22 01:41:19 +03:00
NoNewPrivileges =
2021-04-02 20:51:44 +03:00
NonBlocking =
NotifyAccess =
OOMPolicy =
2018-03-11 14:36:19 +03:00
OOMScoreAdjust =
2021-04-02 20:51:44 +03:00
PAMName =
PIDFile =
2018-03-11 14:36:19 +03:00
PassEnvironment =
2021-04-02 20:51:44 +03:00
PermissionsStartOnly =
2018-03-11 14:36:19 +03:00
Personality =
PrivateDevices =
2021-04-02 20:51:44 +03:00
PrivateIPC =
PrivateMounts =
2018-03-11 14:36:19 +03:00
PrivateNetwork =
PrivateTmp =
PrivateUsers =
2021-04-02 20:51:44 +03:00
ProcSubset =
ProtectClock =
2018-03-11 14:36:19 +03:00
ProtectControlGroups =
ProtectHome =
2021-04-02 20:51:44 +03:00
ProtectHostname =
ProtectKernelLogs =
2018-03-11 14:36:19 +03:00
ProtectKernelModules =
ProtectKernelTunables =
2021-04-02 20:51:44 +03:00
ProtectProc =
2018-03-11 14:36:19 +03:00
ProtectSystem =
2021-04-02 20:51:44 +03:00
ReadOnlyDirectories =
2018-03-11 14:36:19 +03:00
ReadOnlyPaths =
2021-04-02 20:51:44 +03:00
ReadWriteDirectories =
2018-03-11 14:36:19 +03:00
ReadWritePaths =
2021-04-02 20:51:44 +03:00
RebootArgument =
RemainAfterExit =
2018-03-11 14:36:19 +03:00
RemoveIPC =
2021-04-02 20:51:44 +03:00
Restart =
RestartForceExitStatus =
RestartKillSignal =
RestartPreventExitStatus =
RestartSec =
2018-03-11 14:36:19 +03:00
RestrictAddressFamilies =
RestrictNamespaces =
RestrictRealtime =
2019-03-20 21:09:09 +03:00
RestrictSUIDSGID =
2021-04-02 20:51:44 +03:00
RootDirectory =
RootDirectoryStartOnly =
RootHash =
RootHashSignature =
RootImage =
RootImageOptions =
RootVerity =
2018-03-11 14:36:19 +03:00
RuntimeDirectory =
RuntimeDirectoryMode =
RuntimeDirectoryPreserve =
2021-04-02 20:51:44 +03:00
RuntimeMaxSec =
2018-03-11 14:36:19 +03:00
SELinuxContext =
2021-04-02 20:51:44 +03:00
SecureBits =
SendSIGHUP =
SendSIGKILL =
SetCredential =
Slice =
2018-03-11 14:36:19 +03:00
SmackProcessLabel =
2021-04-02 20:51:44 +03:00
Sockets =
2018-03-11 14:36:19 +03:00
StandardError =
StandardInput =
StandardInputData =
StandardInputText =
StandardOutput =
2021-04-02 20:51:44 +03:00
StartLimitAction =
StartLimitBurst =
StartLimitInterval =
StartupBlockIOWeight =
StartupCPUShares =
StartupCPUWeight =
StartupIOWeight =
2018-03-11 14:36:19 +03:00
StateDirectory =
StateDirectoryMode =
2021-04-02 20:51:44 +03:00
SuccessExitStatus =
SupplementaryGroups =
SysVStartPriority =
2018-03-11 14:36:19 +03:00
SyslogFacility =
SyslogIdentifier =
SyslogLevel =
SyslogLevelPrefix =
SystemCallArchitectures =
SystemCallErrorNumber =
SystemCallFilter =
2021-04-02 20:51:44 +03:00
SystemCallLog =
2018-03-11 14:36:19 +03:00
TTYPath =
TTYReset =
TTYVHangup =
TTYVTDisallocate =
2021-04-02 20:51:44 +03:00
TasksAccounting =
TasksMax =
2018-03-11 14:36:19 +03:00
TemporaryFileSystem =
2021-04-02 20:51:44 +03:00
TimeoutAbortSec =
TimeoutCleanSec =
TimeoutSec =
TimeoutStartFailureMode =
TimeoutStartSec =
TimeoutStopFailureMode =
TimeoutStopSec =
2018-03-11 14:36:19 +03:00
TimerSlackNSec =
2021-04-02 20:51:44 +03:00
Type =
2018-03-11 14:36:19 +03:00
UMask =
2021-04-02 20:51:44 +03:00
USBFunctionDescriptors =
USBFunctionStrings =
2018-03-11 14:36:19 +03:00
UnsetEnvironment =
User =
UtmpIdentifier =
UtmpMode =
2021-04-02 20:51:44 +03:00
WatchdogSec =
WatchdogSignal =
2018-03-11 14:36:19 +03:00
WorkingDirectory =