guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[shepherd] 04/06: service: Add ‘register-service-logger’.


From: Ludovic Courtès
Subject: [shepherd] 04/06: service: Add ‘register-service-logger’.
Date: Sun, 28 Apr 2024 17:16:26 -0400 (EDT)

civodul pushed a commit to branch devel
in repository shepherd.

commit ae32e8d75edf16703e418eb34a1f2cf7d03456ac
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Sat Apr 27 21:30:09 2024 +0200

    service: Add ‘register-service-logger’.
    
    * modules/shepherd/service.scm (register-service-logger): New procedure.
    (service-control): No longer export.
    * modules/shepherd/logger.scm (%service-file-logger)
    (service-builtin-logger): Use ‘register-service-logger’ instead of
    writing directly to SERVICE’s control channel.
---
 modules/shepherd/logger.scm  | 8 +++-----
 modules/shepherd/service.scm | 8 +++++++-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/modules/shepherd/logger.scm b/modules/shepherd/logger.scm
index 6a70d89..f3a182f 100644
--- a/modules/shepherd/logger.scm
+++ b/modules/shepherd/logger.scm
@@ -23,7 +23,7 @@
   #:use-module (fibers operations)
   #:use-module (shepherd comm)
   #:autoload   (shepherd service) (current-service
-                                   service-control
+                                   register-service-logger
                                    service-running-value
                                    service-status)
   #:use-module (shepherd support)
@@ -105,8 +105,7 @@ not exist."
 
       (when service
         ;; Associate this logger with SERVICE.
-        (put-message (service-control service)
-                     `(register-logger ,channel)))
+        (register-service-logger service channel))
 
       (call-with-port output
         (lambda (output)
@@ -190,8 +189,7 @@ to @var{history-size} lines in memory."
 
     (when service
       ;; Associate this logger with SERVICE.
-      (put-message (service-control service)
-                   `(register-logger ,channel)))
+      (register-service-logger service channel))
 
     (let loop ((pid #f)
                (messages (ring-buffer history-size))
diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm
index 1d036ef..a0a4db9 100644
--- a/modules/shepherd/service.scm
+++ b/modules/shepherd/service.scm
@@ -75,7 +75,6 @@
             service-recent-messages
             service-log-file
             service-action-list
-            service-control                       ;internal
 
             lookup-service-action
             service-defines-action?
@@ -98,6 +97,7 @@
             start-in-the-background
             stop-service
             perform-service-action
+            register-service-logger
 
             lookup-running
             for-each-service
@@ -884,6 +884,12 @@ channel and wait for its reply."
   "Disable @var{service}."
   (put-message (service-control service) 'disable))
 
+(define (register-service-logger service logger)
+  "Register @var{logger}, a value as returned by
+@code{spawn-service-file-logger} & co., as the logger of @var{service}."
+  (put-message (service-control service)
+               `(register-logger ,logger)))
+
 (define (record-service-respawn-time service)
   "Record the current time as the last respawn time for @var{service}."
   (put-message (service-control service) 'record-respawn-time))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]