GNU bug report logs -
#70636
[PATCH] services: admin: Support restarting system after unattended upgrade
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 70636 in the body.
You can then email your comments to 70636 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#70636
; Package
guix-patches
.
(Sun, 28 Apr 2024 21:35:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Richard Sent <richard <at> freakingpenguin.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sun, 28 Apr 2024 21:35:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/services/admin.scm (unattended-upgrade-configuration): Add restart?
field. When truthy, unattended upgrade will tell shepherd to stop the root
service, which triggers a restart.
* /doc/guix.texi (Unattended Upgrades): Document it.
Change-Id: I0af659b3c318421b1a7baa94dde3dadacc1fa10d
---
Hi Guix!
This patch adds support for running a complete system restart after an
unattended upgrade. Previously, unattended upgrades were not capable
of, say, upgrading the kernel.
/Technically/ without this patch I'm pretty sure you could restart the
system by restarting the 'file-systems service. I haven't found
documentation on that and it feels like a hack more than a feature. I
don't know if it would perform a safe shutdown. Thankfully, Shepherd
explicitly treats "stop root service" as "restart" so the method in
this patch should be safe.
doc/guix.texi | 4 ++++
gnu/services/admin.scm | 13 ++++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 3ee9f54773..08fdac4cd3 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -22891,6 +22891,10 @@ Unattended Upgrades
#~(@@ (guix system install) installation-os)))
@end lisp
+@item @code{restart?} (default: @code{#f})
+This field specifies whether the system should restart after completing
+an unattended upgrade.
+
@item @code{services-to-restart} (default: @code{'(mcron)})
This field specifies the Shepherd services to restart when the upgrade
completes.
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 0b325fddb1..579cf83132 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -420,6 +420,8 @@ (define-record-type* <unattended-upgrade-configuration>
(default "30 01 * * 0"))
(channels unattended-upgrade-configuration-channels
(default #~%default-channels))
+ (restart? unattended-upgrade-configuration-restart?
+ (default #f))
(services-to-restart unattended-upgrade-configuration-services-to-restart
(default '(mcron)))
(system-expiration unattended-upgrade-system-expiration
@@ -443,6 +445,9 @@ (define (unattended-upgrade-mcron-jobs config)
(define services
(unattended-upgrade-configuration-services-to-restart config))
+ (define restart?
+ (unattended-upgrade-configuration-restart? config))
+
(define expiration
(unattended-upgrade-system-expiration config))
@@ -512,7 +517,13 @@ (define (unattended-upgrade-mcron-jobs config)
;; XXX: If 'mcron' has been restarted, perhaps this isn't
;; reached.
- (format #t "~a upgrade complete~%" (timestamp))))))
+ (format #t "~a upgrade complete~%" (timestamp))
+
+ ;; Stopping the root shepherd service triggers a restart.
+ (when #$restart?
+ (format #t "~a restarting system~%" (timestamp))
+ (force-output) ;ensure the entire log is written.
+ (stop-service 'root))))))
(define upgrade
(program-file "unattended-upgrade" code))
base-commit: 9f183c3627a006e8fd3bb9708448bc05a6204e6d
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#70636
; Package
guix-patches
.
(Mon, 29 Apr 2024 04:36:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 70636 <at> debbugs.gnu.org (full text, mbox):
* 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
---
Decided to change restart? to reboot?. The manual seems to generally
prefer reboot and it makes restarting services vs. rebooting the
system a bit more distinct.
doc/guix.texi | 4 ++++
gnu/services/admin.scm | 13 ++++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 5d3c9225b4..709db674c9 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -22891,6 +22891,10 @@ Unattended Upgrades
#~(@@ (guix system install) installation-os)))
@end lisp
+@item @code{reboot?} (default: @code{#f})
+This field specifies whether the system should reboot after completing
+an unattended upgrade.
+
@item @code{services-to-restart} (default: @code{'(mcron)})
This field specifies the Shepherd services to restart when the upgrade
completes.
diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm
index 0b325fddb1..4882883878 100644
--- a/gnu/services/admin.scm
+++ b/gnu/services/admin.scm
@@ -420,6 +420,8 @@ (define-record-type* <unattended-upgrade-configuration>
(default "30 01 * * 0"))
(channels unattended-upgrade-configuration-channels
(default #~%default-channels))
+ (reboot? unattended-upgrade-configuration-reboot?
+ (default #f))
(services-to-restart unattended-upgrade-configuration-services-to-restart
(default '(mcron)))
(system-expiration unattended-upgrade-system-expiration
@@ -443,6 +445,9 @@ (define (unattended-upgrade-mcron-jobs config)
(define services
(unattended-upgrade-configuration-services-to-restart config))
+ (define reboot?
+ (unattended-upgrade-configuration-reboot? config))
+
(define expiration
(unattended-upgrade-system-expiration config))
@@ -512,7 +517,13 @@ (define (unattended-upgrade-mcron-jobs config)
;; XXX: If 'mcron' has been restarted, perhaps this isn't
;; reached.
- (format #t "~a upgrade complete~%" (timestamp))))))
+ (format #t "~a upgrade complete~%" (timestamp))
+
+ ;; Stopping the root shepherd service triggers a reboot.
+ (when #$reboot?
+ (format #t "~a rebooting system~%" (timestamp))
+ (force-output) ;ensure the entire log is written.
+ (stop-service 'root))))))
(define upgrade
(program-file "unattended-upgrade" code))
base-commit: 3bd8d238aba718bf949691d0e37fa310e2cfc12a
--
2.41.0
Reply sent
to
Ludovic Courtès <ludo <at> gnu.org>
:
You have taken responsibility.
(Sun, 15 Sep 2024 21:54:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Richard Sent <richard <at> freakingpenguin.com>
:
bug acknowledged by developer.
(Sun, 15 Sep 2024 21:54:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 70636-done <at> debbugs.gnu.org (full text, mbox):
Hi,
Richard Sent <richard <at> freakingpenguin.com> skribis:
> * 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
Applied, thanks!
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 14 Oct 2024 11:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 147 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.