summary refs log tree commit diff
path: root/gnu/services
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-23 23:45:27 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-23 23:56:16 -0400
commiteffdc6c83e7000bf062526f4256de69899e13b40 (patch)
treea0bf0ae2975439d8f616cc9a2bcd988c3714eb99 /gnu/services
parent829c19142e62efa7ba9715fc682b4be959830b2e (diff)
downloadguix-effdc6c83e7000bf062526f4256de69899e13b40.tar.gz
services: jami-service-type: Streamline stop slot.
* gnu/services/telephony.scm (jami-shepherd-services)
[stop]: Use make-kill-destructor with SIGKILL.  Add comment.
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/telephony.scm12
1 files changed, 5 insertions, 7 deletions
diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm
index 3d855221e5..b66c7a8563 100644
--- a/gnu/services/telephony.scm
+++ b/gnu/services/telephony.scm
@@ -685,13 +685,11 @@ argument, either a registered username or the fingerprint of the account.")
 
                     ;; Finally, return the PID of the daemon process.
                     daemon-pid))
-               (stop
-                #~(lambda (pid . args)
-                    (kill pid SIGKILL)
-                    ;; Wait for the process to exit; this prevents overlapping
-                    ;; processes when issuing 'herd restart'.
-                    (waitpid pid)
-                    #f))))))))
+               ;; XXX: jamid takes some time to terminate, and GNU Shepherd
+               ;; doesn't block when calling waitpid (see:
+               ;; https://issues.guix.gnu.org/57922).  Using SIGKILL instead
+               ;; of SIGTERM works around that.
+               (stop #~(make-kill-destructor SIGKILL))))))))
 
 (define jami-service-type
   (service-type