[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[shepherd] 02/06: service: 'start-service' returns #f when dependencies
From: |
Ludovic Courtès |
Subject: |
[shepherd] 02/06: service: 'start-service' returns #f when dependencies failed to start. |
Date: |
Wed, 14 Jun 2023 12:46:24 -0400 (EDT) |
civodul pushed a commit to branch master
in repository shepherd.
commit bf86a26854cc5c274d2eaa5e70ac9a82bcace29f
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Wed Jun 14 17:45:53 2023 +0200
service: 'start-service' returns #f when dependencies failed to start.
* modules/shepherd/service.scm (start-service): Return #f when PROBLEMS
is non-empty. Update docstring.
* doc/shepherd.texi (Interacting with Services): Update accordingly.
---
doc/shepherd.texi | 2 +-
modules/shepherd/service.scm | 14 ++++++++------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/doc/shepherd.texi b/doc/shepherd.texi
index 75fcb49..6d7ddfd 100644
--- a/doc/shepherd.texi
+++ b/doc/shepherd.texi
@@ -943,7 +943,7 @@ The procedures below let you change the state of a service.
@deffn {Procedure} start-service @var{service} . @var{args}
Start @var{service} and its dependencies, passing @var{args} to its
-@code{start} method.
+@code{start} method. Return its running value, @code{#f} on failure.
@end deffn
@deffn {Procedure} stop-service @var{service} . @var{args}
diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm
index 2559499..0980ac4 100644
--- a/modules/shepherd/service.scm
+++ b/modules/shepherd/service.scm
@@ -829,17 +829,19 @@ while starting ~a: ~s")
(define (start-service service . args)
"Start @var{service} and its dependencies, passing @var{args} to its
-@code{start} method."
+@code{start} method. Return its running value, @code{#f} on failure."
;; It is not running; go ahead and launch it.
(let ((problems
;; Resolve all dependencies.
(start-in-parallel (service-requirement service))))
(if (pair? problems)
- (for-each (lambda (problem)
- (local-output (l10n "Service ~a depends on ~a.")
- (service-canonical-name service)
- problem))
- problems)
+ (begin
+ (for-each (lambda (problem)
+ (local-output (l10n "Service ~a depends on ~a.")
+ (service-canonical-name service)
+ problem))
+ problems)
+ #f)
;; Start the service itself.
(let ((reply (make-channel)))
(put-message (service-control service) `(start ,reply))
- [shepherd] branch master updated (24c9640 -> d5ed516), Ludovic Courtès, 2023/06/14
- [shepherd] 05/06: service: Preserve "disabled" flag when replacing., Ludovic Courtès, 2023/06/14
- [shepherd] 03/06: herd: Print "disabled" in red when the service was respawned., Ludovic Courtès, 2023/06/14
- [shepherd] 02/06: service: 'start-service' returns #f when dependencies failed to start.,
Ludovic Courtès <=
- [shepherd] 01/06: service: Always honor the 'enabled?' flag., Ludovic Courtès, 2023/06/14
- [shepherd] 06/06: README: Document use of the Guix channel., Ludovic Courtès, 2023/06/14
- [shepherd] 04/06: tests: Simplify 'tests/replacement.sh'., Ludovic Courtès, 2023/06/14