summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorRichard Sent <richard@freakingpenguin.com>2024-04-29 00:34:20 -0400
committerLudovic Courtès <ludo@gnu.org>2024-09-16 00:16:21 +0200
commit85556e1dab5040e9f570fd2606fef563bf0bbb83 (patch)
tree889c9e4f7dc7c931a4ef9e3ed3e27090e5b09fd6 /gnu/services
parent2fcca2dafbfcf8d300177a755e6d42b55d78e50d (diff)
services: admin: Support rebooting after an unattended upgrade
* gnu/services/admin.scm (unattended-upgrade-configuration): Add reboot? field. When truthy, unattended upgrade will stop the shepherd root service, triggering a reboot. * doc/guix.texi (Unattended Upgrades): Document it. Change-Id: I0af659b3c318421b1a7baa94dde3dadacc1fa10d Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/admin.scm13
1 files changed, 12 insertions, 1 deletions
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 0b325fddb1e..4882883878a 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -420,6 +420,8 @@ which lets you search for packages that provide a given file.")
420 (default "30 01 * * 0")) 420 (default "30 01 * * 0"))
421 (channels unattended-upgrade-configuration-channels 421 (channels unattended-upgrade-configuration-channels
422 (default #~%default-channels)) 422 (default #~%default-channels))
423 (reboot? unattended-upgrade-configuration-reboot?
424 (default #f))
423 (services-to-restart unattended-upgrade-configuration-services-to-restart 425 (services-to-restart unattended-upgrade-configuration-services-to-restart
424 (default '(mcron))) 426 (default '(mcron)))
425 (system-expiration unattended-upgrade-system-expiration 427 (system-expiration unattended-upgrade-system-expiration
@@ -443,6 +445,9 @@ which lets you search for packages that provide a given file.")
443 (define services 445 (define services
444 (unattended-upgrade-configuration-services-to-restart config)) 446 (unattended-upgrade-configuration-services-to-restart config))
445 447
448 (define reboot?
449 (unattended-upgrade-configuration-reboot? config))
450
446 (define expiration 451 (define expiration
447 (unattended-upgrade-system-expiration config)) 452 (unattended-upgrade-system-expiration config))
448 453
@@ -512,7 +517,13 @@ which lets you search for packages that provide a given file.")
512 517
513 ;; XXX: If 'mcron' has been restarted, perhaps this isn't 518 ;; XXX: If 'mcron' has been restarted, perhaps this isn't
514 ;; reached. 519 ;; reached.
515 (format #t "~a upgrade complete~%" (timestamp)))))) 520 (format #t "~a upgrade complete~%" (timestamp))
521
522 ;; Stopping the root shepherd service triggers a reboot.
523 (when #$reboot?
524 (format #t "~a rebooting system~%" (timestamp))
525 (force-output) ;ensure the entire log is written.
526 (stop-service 'root))))))
516 527
517 (define upgrade 528 (define upgrade
518 (program-file "unattended-upgrade" code)) 529 (program-file "unattended-upgrade" code))