aboutsummaryrefslogtreecommitdiff
path: root/gnu/services/virtualization.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/services/virtualization.scm')
-rw-r--r--gnu/services/virtualization.scm26
1 files changed, 25 insertions, 1 deletions
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 0fbd51de8d..7b04ddb35e 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -36,6 +36,7 @@
#: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)
@@ -1209,6 +1210,11 @@ authpriv.*;auth.info /var/log/secure
(openssh-configuration
(openssh openssh-sans-x)))
+ ;; Run GC once per hour.
+ (simple-service 'perdiodic-gc mcron-service-type
+ (list #~(job "12 * * * *"
+ "guix gc -F 2G")))
+
(modify-services %base-services
;; By default, the secret service introduces a
;; pre-initialized /etc/guix/acl file in the VM. Thus,
@@ -1239,6 +1245,7 @@ authpriv.*;auth.info /var/log/secure
(virtual-build-machine-name config)))
(format 'compressed-qcow2)
(partition-table-type 'mbr)
+ (volatile-root? #f)
(shared-store? #f)
(size %default-virtual-build-machine-image-size)
(partitions (match (image-partitions base)
@@ -1335,6 +1342,22 @@ authpriv.*;auth.info /var/log/secure
(kill (- pid) SIGTERM)
(apply throw key args)))))))
(stop #~(make-kill-destructor))
+ (actions
+ (list (shepherd-action
+ (name 'configuration)
+ (documentation
+ "Display the configuration of this virtual build machine.")
+ (procedure
+ #~(lambda (_)
+ (format #t "CPU: ~a~%"
+ #$(virtual-build-machine-cpu config))
+ (format #t "number of CPU cores: ~a~%"
+ #$(virtual-build-machine-cpu-count config))
+ (format #t "memory size: ~a MiB~%"
+ #$(virtual-build-machine-memory-size config))
+ (format #t "initial date: ~a~%"
+ #$(date->string
+ (virtual-build-machine-date config))))))))
(auto-start? (virtual-build-machine-auto-start? config)))))
(define (authorize-guest-substitutes-on-host)
@@ -1500,7 +1523,8 @@ CONFIG, a <virtual-build-machine>, is up and running."
(srfi srfi-34))
(guard (c ((service-not-found-error? c) #f))
- (->bool (current-service '#$service-name))))))
+ (->bool (live-service-running
+ (current-service '#$service-name)))))))
(define (build-vm-guix-extension config)
(define vm-ssh-key