1{ lib, ... }:
2{
3 name = "systemd-user-linger";
4
5 nodes.machine =
6 { ... }:
7 {
8 users.users = {
9 alice = {
10 isNormalUser = true;
11 linger = true;
12 uid = 1000;
13 };
14
15 bob = {
16 isNormalUser = true;
17 linger = false;
18 uid = 10001;
19 };
20 };
21 };
22
23 testScript =
24 { ... }:
25 ''
26 machine.wait_for_file("/var/lib/systemd/linger/alice")
27 machine.succeed("systemctl status user-1000.slice")
28
29 machine.fail("test -e /var/lib/systemd/linger/bob")
30 machine.fail("systemctl status user-1001.slice")
31
32 with subtest("missing users have linger purged"):
33 machine.succeed("touch /var/lib/systemd/linger/missing")
34 machine.systemctl("restart linger-users")
35 machine.succeed("test ! -e /var/lib/systemd/linger/missing")
36 '';
37}