~ruther/guix-local

230f1a9c1cbf3893f9d6eb13c70630f052727eb5 — Ludovic Courtès 1 year, 7 months ago 7cec434
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
1 files changed, 18 insertions(+), 4 deletions(-)

M gnu/services/virtualization.scm
M gnu/services/virtualization.scm => gnu/services/virtualization.scm +18 -4
@@ 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