From fe42e5f39c9b36f02beec246b376a50e41114b84 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 24 Aug 2020 22:59:43 +0200 Subject: services: unattended-upgrade: Log output of the 'guix' commands. Fixes . Reported by Jesse Gibbons . Until now the stdout/stderr file descriptors were not redirected. * gnu/services/admin.scm (unattended-upgrade-mcron-jobs)[code]: Remove 'with-logging' and use 'redirect-port' instead. --- gnu/services/admin.scm | 56 +++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 30 deletions(-) (limited to 'gnu/services') diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 61bc17b2fe..b34b990f32 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -255,13 +255,6 @@ (define (alarm-handler . _) (timestamp)) (exit 1)) - (define-syntax-rule (with-logging exp ...) - (with-output-to-port log - (lambda () - (with-error-to-port log - (lambda () - exp ...))))) - ;; 'guix time-machine' needs X.509 certificates to authenticate the ;; Git host. (setenv "SSL_CERT_DIR" @@ -271,29 +264,32 @@ (define-syntax-rule (with-logging exp ...) (sigaction SIGALRM alarm-handler) (alarm #$(unattended-upgrade-maximum-duration config)) - (with-logging - (format #t "~a starting upgrade...~%" (timestamp)) - (guard (c ((invoke-error? c) - (report-invoke-error c))) - (invoke #$(file-append guix "/bin/guix") - "time-machine" "-C" #$channels - "--" "system" "reconfigure" #$config-file) - - ;; 'guix system delete-generations' fails when there's no - ;; matching generation. Thus, catch 'invoke-error?'. - (guard (c ((invoke-error? c) - (report-invoke-error c))) - (invoke #$(file-append guix "/bin/guix") - "system" "delete-generations" - #$(string-append (number->string expiration) - "s"))) - - (format #t "~a restarting services...~%" (timestamp)) - (for-each restart-service '#$services) - - ;; XXX: If 'mcron' has been restarted, perhaps this isn't - ;; reached. - (format #t "~a upgrade complete~%" (timestamp))))))) + ;; Redirect stdout/stderr to LOG to save the output of 'guix' below. + (redirect-port log (current-output-port)) + (redirect-port log (current-error-port)) + + (format #t "~a starting upgrade...~%" (timestamp)) + (guard (c ((invoke-error? c) + (report-invoke-error c))) + (invoke #$(file-append guix "/bin/guix") + "time-machine" "-C" #$channels + "--" "system" "reconfigure" #$config-file) + + ;; 'guix system delete-generations' fails when there's no + ;; matching generation. Thus, catch 'invoke-error?'. + (guard (c ((invoke-error? c) + (report-invoke-error c))) + (invoke #$(file-append guix "/bin/guix") + "system" "delete-generations" + #$(string-append (number->string expiration) + "s"))) + + (format #t "~a restarting services...~%" (timestamp)) + (for-each restart-service '#$services) + + ;; XXX: If 'mcron' has been restarted, perhaps this isn't + ;; reached. + (format #t "~a upgrade complete~%" (timestamp)))))) (define upgrade (program-file "unattended-upgrade" code)) -- cgit v1.2.3