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