diff options
-rw-r--r-- | gnu/services/shepherd.scm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm index 5e8880cefe..4fd4b2a497 100644 --- a/gnu/services/shepherd.scm +++ b/gnu/services/shepherd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <[email protected]> +;;; Copyright © 2013-2016, 2018-2022 Ludovic Courtès <[email protected]> ;;; Copyright © 2017 Clément Lassieur <[email protected]> ;;; Copyright © 2018 Carlo Zancanaro <[email protected]> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email protected]> @@ -470,8 +470,13 @@ need to be restarted to complete their upgrade." (filter running? target)) (define to-unload - ;; Unload services that are no longer required. - (remove essential? (filter obsolete? live))) + ;; Unload services that are no longer required. Essential services must + ;; be kept and transient services such as inetd child services should be + ;; kept as well--they'll vanish eventually. + (remove (lambda (live) + (or (essential? live) + (live-service-transient? live))) + (filter obsolete? live))) (values to-unload to-restart)) |