That OnFailureJobMode= option (under [Unit] section of systemd unit files) takes these values:failreplacereplace-irreversiblyisolateflushignore-dependenciesignore-requirementsWhat do they all mean?
What do values taken by 'OnFailureJobMode=' mean in systemd unit files
systemd
In systemd.unit(5), where OnFailureJobMode= is documented, it is stated:Specifies how the units listed in OnFailure= will be enqueued. See systemctl(1)'s --job-mode= option for details on the possible values.This takes us to documentation of systemctl's --job-mode switch in systemctl(1), where it clearly reads:When queuing a new job, this option controls how to deal with already queued jobs. It takes one of fail, replace, replace-irreversibly, isolate, ignore-dependencies, ignore-requirements or flush. Defaults to replace, except when the isolate command is used which implies the isolate job mode.If fail is specified and a requested operation conflicts with a pending job (more specifically: causes an already pending start job to be reversed into a stop job or vice versa), cause the operation to fail.If replace (the default) is specified, any conflicting pending job will be replaced, as necessary.If replace-irreversibly is specified, operate like replace, but also mark the new jobs as irreversible. This prevents future conflicting transactions from replacing these jobs (or even being enqueued while the irreversible jobs are still pending). Irreversible jobs can still be cancelled using the cancel command.isolate is only valid for start operations and causes all other units to be stopped when the specified unit is started. This mode is always used when the isolate command is used.flush will cause all queued jobs to be canceled when the new job is enqueued.If ignore-dependencies is specified, then all unit dependencies are ignored for this new job and the operation is executed immediately. If passed, no required units of the unit passed will be pulled in, and no ordering dependencies will be honored. This is mostly a debugging and rescue tool for the administrator and should not be used by applications.ignore-requirements is similar to ignore-dependencies, but only causes the requirement dependencies to be ignored, the ordering dependencies will still be honoured.