guix-daemon.service.in: Make service restartable. Currently the service cannot be restarted, because the gnu store mount makes it read-only. So fix this by removing the mount when starting the service. "-" to accept failures, in case the command doesn't finish successfully, chances are, the store can be mounted as RW, so continue. "+" to run as root Fixes: #4744 * etc/guix-daemon.service.in (Service)<ExecStartPre>: Stop gnu-store.mount (Service)<ExecStartPost>: Start gnu-store.mount Change-Id: I296f5d8805497f8a7364b68d627eb6d4fc05dbff
1 files changed, 6 insertions(+), 0 deletions(-) M etc/guix-daemon.service.in
M etc/guix-daemon.service.in => etc/guix-daemon.service.in +6 -0
@@ 14,6 14,12 @@ ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daem --substitute-urls='@GUIX_SUBSTITUTE_URLS@' Environment='GUIX_STATE_DIRECTORY=@localstatedir@/guix' 'GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8 # Stop the gnu-store.mount so that the daemon can capture the store as # read-write in its private mount namespace. # See <https://codeberg.org/guix/guix/issues/4744>. ExecStartPre=-+systemctl stop gnu-store.mount ExecStartPost=-+systemctl start gnu-store.mount --no-block # Run under a dedicated unprivileged user account. User=guix-daemon