summaryrefslogtreecommitdiffstats
path: root/nixos/tests/systemd-user-linger.nix
blob: b176a6d57f7ae8c9467c3801af41431c1954c486 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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: 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")
    '';
}