diff --git a/m/common/base/nix.nix b/m/common/base/nix.nix index aef1397..dc79647 100644 --- a/m/common/base/nix.nix +++ b/m/common/base/nix.nix @@ -32,6 +32,21 @@ }; }; + # The nix-gc.service can begin its execution *before* /home is mounted, + # causing it to remove all gcroots considering them as stale, as it cannot + # access the symlink. To prevent this problem, we force the service to wait + # until /home is mounted as well as other remote FS like /ceph. + systemd.services.nix-gc = { + # Start remote-fs.target if not already being started and fail if it fails + # to start. It will also be stopped if the remote-fs.target fails after + # starting successfully. + bindsTo = [ "remote-fs.target" ]; + # Wait until remote-fs.target fully starts before starting this one. + after = [ "remote-fs.target"]; + # Ensure we can access a remote path inside /home + unitConfig.ConditionPathExists = "/home/Computational"; + }; + # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave