From aa1a330ef33271e67bfa0bb6202291a12ebeffb2 Mon Sep 17 00:00:00 2001 From: alexion Date: Tue, 15 Sep 2026 18:04:51 -0400 Subject: [PATCH] fix(nixos): decouple game startup from guest readiness --- configs/nixos/modules/services/steamcmd.nix | 23 ++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/configs/nixos/modules/services/steamcmd.nix b/configs/nixos/modules/services/steamcmd.nix index 4720fc4..5c27d94 100644 --- a/configs/nixos/modules/services/steamcmd.nix +++ b/configs/nixos/modules/services/steamcmd.nix @@ -142,24 +142,33 @@ }; }; + "${service.serviceName}-autostart" = { + description = "Queue ${service.serviceName} game server startup"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${pkgs.systemd}/bin/systemctl --no-block start ${service.serviceName}.service"; + }; + }; + ${service.serviceName} = { description = "${service.serviceName} game server"; after = [ - "multi-user.target" "network-online.target" "steamcmd-${service.serviceName}-update.service" ]; - wants = [ "network-online.target" ]; - wantedBy = [ "multi-user.target" ]; + wants = [ + "network-online.target" + "steamcmd-${service.serviceName}-update.service" + ]; serviceConfig = { Type = "simple"; User = user; Group = group; WorkingDirectory = "-${service.installDir}"; - ExecStartPre = [ - "+${prepareScript}" - updateScript - ]; + ExecStartPre = "+${prepareScript}"; ExecStart = startScript; Restart = "on-failure"; TimeoutStartSec = "15min";