diff --git a/services/game-servers.nix b/services/game-servers.nix index f2bc470..af7d4e9 100644 --- a/services/game-servers.nix +++ b/services/game-servers.nix @@ -7,18 +7,20 @@ wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - path = with pkgs; [ bash jdk unzip gawk gnugrep coreutils ]; # Add required tools + path = with pkgs; [ bash jdk unzip gawk gnugrep coreutils screen ]; # Added screen environment = { - HYTALE_MEMORY = "8G"; # Adjust memory allocation here + HYTALE_MEMORY = "8G"; }; serviceConfig = { - Type = "simple"; + Type = "forking"; # Changed from "simple" User = "fred"; Group = "users"; WorkingDirectory = "/home/fred/docker/hytale-server/Server"; - ExecStart = "/home/fred/docker/hytale-server/start-hytale.sh"; + ExecStart = "${pkgs.screen}/bin/screen -dmS hytale /home/fred/docker/hytale-server/start-hytale.sh"; + ExecStop = "${pkgs.screen}/bin/screen -S hytale -X stuff 'stop^M'"; + RemainAfterExit = "yes"; Restart = "on-failure"; RestartSec = "10s"; TimeoutStopSec = "30s";