services: virtual-build-machine: Turn GC job into a Shepherd timer.

* gnu/services/virtualization.scm (gc-service-type): New variable.
(%virtual-build-machine-operating-system): Use instead of extending
‘mcron-service-type’.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I56d7f9293f582269e5a34d91bf4f3edddfa844e0
This commit is contained in:
Ludovic Courtès 2025-03-14 12:12:19 +01:00
parent 7cec434865
commit 230f1a9c1c
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -40,7 +40,6 @@
#:use-module (gnu services base)
#:use-module (gnu services configuration)
#:use-module (gnu services dbus)
#:use-module (gnu services mcron)
#:use-module (gnu services shepherd)
#:use-module (gnu services ssh)
#:use-module (gnu services)
@ -1353,6 +1352,23 @@ that will be listening to receive secret keys on ADDRESS."
(else
'("/dev/console")))))
(define gc-service-type ;TODO: Factorize.
(shepherd-service-type
'garbage-collection
(lambda _
(shepherd-service
(provision '(gc))
(requirement '(user-processes guix-daemon))
(start #~(make-timer-constructor
(calendar-event #:minutes '(12))
(command
'("/run/current-system/profile/bin/guix" "gc" "-F2G"))
#:wait-for-termination? #t))
(stop #~(make-timer-constructor))
(actions (list shepherd-trigger-action))))
#t
(description "Periodically collect garbage.")))
(define %virtual-build-machine-operating-system
(operating-system
(host-name "build-machine")
@ -1385,9 +1401,7 @@ that will be listening to receive secret keys on ADDRESS."
(openssh openssh-sans-x)))
;; Run GC once per hour.
(simple-service 'perdiodic-gc mcron-service-type
(list #~(job "12 * * * *"
"guix gc -F 2G")))
(service gc-service-type)
(modify-services %base-services
;; By default, the secret service introduces a