at 25.11-pre 1.5 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, ... }: 3 4 let 5 exampleScript = pkgs.writeTextFile { 6 name = "example.sh"; 7 text = '' 8 #! ${pkgs.runtimeShell} -e 9 10 while true; do 11 echo "Example script running" >&2 12 ${pkgs.coreutils}/bin/sleep 1 13 done 14 ''; 15 executable = true; 16 }; 17 18 unitFile = pkgs.writeTextFile { 19 name = "example.service"; 20 text = '' 21 [Unit] 22 Description=Example systemd service unit file 23 24 [Service] 25 ExecStart=${exampleScript} 26 27 [Install] 28 WantedBy=multi-user.target 29 ''; 30 }; 31 in 32 { 33 name = "systemd-misc"; 34 35 nodes.machine = 36 { pkgs, lib, ... }: 37 { 38 boot.extraSystemdUnitPaths = [ "/etc/systemd-rw/system" ]; 39 40 users.users.limited = { 41 isNormalUser = true; 42 uid = 1000; 43 }; 44 45 systemd.units."user-1000.slice.d/limits.conf" = { 46 text = '' 47 [Slice] 48 TasksAccounting=yes 49 TasksMax=100 50 ''; 51 }; 52 }; 53 54 testScript = '' 55 machine.wait_for_unit("multi-user.target") 56 machine.succeed("mkdir -p /etc/systemd-rw/system") 57 machine.succeed( 58 "cp ${unitFile} /etc/systemd-rw/system/example.service" 59 ) 60 machine.succeed("systemctl start example.service") 61 machine.succeed("systemctl status example.service | grep 'Active: active'") 62 63 machine.succeed("systemctl show --property TasksMax --value user-1000.slice | grep 100") 64 ''; 65 } 66)