aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2025-03-14 12:12:19 +0100
committerLudovic Courtès <ludo@gnu.org>2025-03-23 19:30:52 +0100
commit230f1a9c1cbf3893f9d6eb13c70630f052727eb5 (patch)
tree700fd92b9641acbe202fd15542ae772074f1f4c5
parent7cec43486548f12a43b56dff8082ffe00a5e0c3d (diff)
downloadguix-230f1a9c1cbf3893f9d6eb13c70630f052727eb5.tar.gz
guix-230f1a9c1cbf3893f9d6eb13c70630f052727eb5.zip
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
-rw-r--r--gnu/services/virtualization.scm22
1 files changed, 18 insertions, 4 deletions
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 555c0be55e..90a0265a59 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -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