mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-23 07:23:20 +00:00
Merge pull request #287743 from nagisa/adds-systemd-upholds
systemd: add support for upholds and upheldBy
This commit is contained in:
commit
f7087dd159
@ -286,6 +286,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
||||
[fileSystems.overlay](#opt-fileSystems._name_.overlay.lowerdir). See also the
|
||||
[NixOS docs](#sec-overlayfs).
|
||||
|
||||
- systemd units can now specify the `Upholds=` and `UpheldBy=` unit dependencies via the aptly
|
||||
named `upholds` and `upheldBy` options. These options get systemd to enforce that the
|
||||
dependencies remain continuosly running for as long as the dependent unit is in a running state.
|
||||
|
||||
- `stdenv`: The `--replace` flag in `substitute`, `substituteInPlace`, `substituteAll`, `substituteAllStream`, and `substituteStream` is now deprecated if favor of the new `--replace-fail`, `--replace-warn` and `--replace-quiet`. The deprecated `--replace` equates to `--replace-warn`.
|
||||
|
||||
- A new hardening flag, `zerocallusedregs` was made available, corresponding to the gcc/clang option `-fzero-call-used-regs=used-gpr`.
|
||||
|
@ -242,7 +242,7 @@ in rec {
|
||||
ln -sfn '${name}' $out/'${name2}'
|
||||
'') (unit.aliases or [])) units)}
|
||||
|
||||
# Create .wants and .requires symlinks from the wantedBy and
|
||||
# Create .wants, .upholds and .requires symlinks from the wantedBy, upheldBy and
|
||||
# requiredBy options.
|
||||
${concatStrings (mapAttrsToList (name: unit:
|
||||
concatMapStrings (name2: ''
|
||||
@ -250,6 +250,12 @@ in rec {
|
||||
ln -sfn '../${name}' $out/'${name2}.wants'/
|
||||
'') (unit.wantedBy or [])) units)}
|
||||
|
||||
${concatStrings (mapAttrsToList (name: unit:
|
||||
concatMapStrings (name2: ''
|
||||
mkdir -p $out/'${name2}.upholds'
|
||||
ln -sfn '../${name}' $out/'${name2}.upholds'/
|
||||
'') (unit.upheldBy or [])) units)}
|
||||
|
||||
${concatStrings (mapAttrsToList (name: unit:
|
||||
concatMapStrings (name2: ''
|
||||
mkdir -p $out/'${name2}.requires'
|
||||
@ -289,6 +295,8 @@ in rec {
|
||||
{ Requires = toString config.requires; }
|
||||
// optionalAttrs (config.wants != [])
|
||||
{ Wants = toString config.wants; }
|
||||
// optionalAttrs (config.upholds != [])
|
||||
{ Upholds = toString config.upholds; }
|
||||
// optionalAttrs (config.after != [])
|
||||
{ After = toString config.after; }
|
||||
// optionalAttrs (config.before != [])
|
||||
|
@ -74,6 +74,15 @@ in rec {
|
||||
'';
|
||||
};
|
||||
|
||||
upheldBy = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = lib.mdDoc ''
|
||||
Keep this unit running as long as the listed units are running. This is a continuously
|
||||
enforced version of wantedBy.
|
||||
'';
|
||||
};
|
||||
|
||||
wantedBy = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
@ -147,6 +156,14 @@ in rec {
|
||||
'';
|
||||
};
|
||||
|
||||
upholds = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
description = lib.mdDoc ''
|
||||
Keeps the specified running while this unit is running. A continuous version of `wants`.
|
||||
'';
|
||||
};
|
||||
|
||||
after = mkOption {
|
||||
default = [];
|
||||
type = types.listOf unitNameType;
|
||||
|
Loading…
Reference in New Issue
Block a user