Files
nixpkgs/nixos/tests/systemd-user-linger.nix
Adam Dinwoodie 0a72d57724 tests/systemd-user-linger-purge: check mutable user handling
Mutable users configured to linger shouldn't have their lingering
deconfigured by the systemd unit for managing lingering users.

Test in both the scenario where there are no users configured in NixOS
to linger, and where there are such users, to catch the case at
https://github.com/NixOS/nixpkgs/pull/363209#issuecomment-2987448905
where mutable lingering users would be incorrectly cleared if there were
any immutable lingering users.
2025-11-08 18:16:04 +00:00

40 lines
1.1 KiB
Nix

rec {
name = "systemd-user-linger";
nodes.machine = {
users.users = {
alice = {
isNormalUser = true;
linger = true;
uid = 1000;
};
bob = {
isNormalUser = true;
linger = false;
uid = 1001;
};
};
};
testScript =
let
uidStrings = builtins.mapAttrs (k: v: builtins.toString v.uid) nodes.machine.users.users;
in
''
machine.wait_for_file("/var/lib/systemd/linger/alice")
machine.succeed("systemctl status user-${uidStrings.alice}.slice")
machine.fail("test -e /var/lib/systemd/linger/bob")
machine.fail("systemctl status user-${uidStrings.bob}.slice")
with subtest("mutable users can linger"):
machine.succeed("useradd clare")
machine.succeed("test ! -e /var/lib/systemd/linger/clare")
machine.succeed("loginctl enable-linger clare")
machine.succeed("test -e /var/lib/systemd/linger/clare")
machine.systemctl("restart linger-users")
machine.succeed("test -e /var/lib/systemd/linger/clare")
'';
}