Hi Attila, On Tue, Jul 02 2024, Attila Lendvai wrote: > i forgot to add that it's fixed Okay, then there is still another problem. I am unable to reconfigure my systems via 'guix deploy' when a timer is enabled already. I am trying to add a second timer. The command stalls with messages like this: The following derivations will be built: /gnu/store/11nlp3k2lq25ijb4m9x0mj7phprjx9f6-remote-exp.scm.drv /gnu/store/b52aidm138l6nwk5wd7lr7ghk8x9n8bx-upgrade-shepherd-services.scm.drv building /gnu/store/b52aidm138l6nwk5wd7lr7ghk8x9n8bx-upgrade-shepherd-services.scm.drv... building /gnu/store/11nlp3k2lq25ijb4m9x0mj7phprjx9f6-remote-exp.scm.drv... guix deploy: sending 2 store items (0 MiB) to 'wallace-server.us-core.com'... The issue occurred for the two timers below, but I believe the issue is unrelated to the type of timer or their order. Attached is a low-res image of the console output. I was unable to capture the error in any other way. Sorry to spam the list with 7kB. Kind regards Felix * * * (define (garbage-collector-shepherd-service config) (shepherd-service (provision '(garbage-collector)) (requirement '(guix-daemon)) (modules '((shepherd service timer))) (start #~(make-timer-constructor ;; Five minutes after midnight every day. (calendar-event #:hours '(0) #:minutes '(5)) (command (list #$(file-append guix "/bin/guix") "gc" "--free-space=1G")))) (stop #~(make-timer-destructor)) (actions (list (shepherd-action (name 'trigger) (documentation "Trigger the action associated with this timer.") (procedure #~(identity trigger-timer))))) (documentation "Maintain minimum free space by cleaning up Guix garbage"))) (define garbage-collector-service-type (service-type (name 'garbage-collector) (description "Maintain minimum free space by cleaning up Guix garbage") (extensions (list (service-extension shepherd-root-service-type (compose list garbage-collector-shepherd-service)))) (default-value #f))) (define (mdadm-resync-shepherd-service config) (shepherd-service (provision '(mdadm-resync)) (requirement '(file-systems user-processes)) (modules '((ice-9 ftw) (ice-9 regex) (shepherd service timer))) (start #~(make-timer-constructor ;; Every first Sunday of the month at 1 AM. (calendar-event #:days-of-month '(1 2 3 4 5 6 7) #:days-of-week '(sunday) #:hours '(1)) (lambda _ ;; some helpers and error handling (define (info message) (let ((timestamp (strftime "%Y-%m-%dT%H:%M:%S%zZ" (localtime (current-time))))) (format (current-error-port) "~a ~a~%" timestamp message))) (define (resync array) (let ((port (open-output-file (string-append "/sys/block/" array "/md/sync_action")))) (display "check" port) (close-port port)) (info (string-append "Started MD resync for " array "."))) (let* ((is-mdadm-device? (lambda (file) (string-match "^md.+" file))) (arrays (scandir "/dev" is-mdadm-device?))) (map resync arrays))))) (stop #~(make-timer-destructor)) (actions (list (shepherd-action (name 'trigger) (documentation "Trigger the action associated with this timer.") (procedure #~(identity trigger-timer))))) (documentation "MD array resync"))) (define mdadm-resync-service-type (service-type (name 'mdadm-resync) (description "MD array resync") (extensions (list (service-extension shepherd-root-service-type (compose list mdadm-resync-shepherd-service)))) (default-value #f)))