diff options
| author | Richard Sent <richard@freakingpenguin.com> | 2024-04-29 00:34:20 -0400 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2024-09-16 00:16:21 +0200 |
| commit | 85556e1dab5040e9f570fd2606fef563bf0bbb83 (patch) | |
| tree | 889c9e4f7dc7c931a4ef9e3ed3e27090e5b09fd6 /gnu/services | |
| parent | 2fcca2dafbfcf8d300177a755e6d42b55d78e50d (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.scm | 13 |
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)) |
