help-guix
[Top][All Lists]
Advanced

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

Re: Configuring a service but not starting it on boot


From: Clément Lassieur
Subject: Re: Configuring a service but not starting it on boot
Date: Wed, 28 Nov 2018 10:34:22 +0100
User-agent: mu4e 1.0; emacs 26.1

Hi Arun,

Arun Isaac <address@hidden> writes:

> I would like to have the a service (specifically the tor service) listed
> in my config.scm and configured using `guix system reconfigure
> config.scm'. But, I do not want the service to start up at boot time. I
> want to start/stop it using `herd' later as and when I require it. How
> do I achieve this?
>
> Thanks!

Attached is a hack I did a while ago.

Hope it helps,
Clément
commit 5ebc46a52e543c316924ac936bb65c3ae7f113bb
Author: Clément Lassieur <address@hidden>
Date:   Fri May 5 15:11:37 2017 +0200

    guix: don't auto-start nginx

diff --git a/guix/configs/modules/rodion/web.scm 
b/guix/configs/modules/rodion/web.scm
index 5c26651..35fe3d3 100644
--- a/guix/configs/modules/rodion/web.scm
+++ b/guix/configs/modules/rodion/web.scm
@@ -1,6 +1,8 @@
 (define-module (rodion web)
   #:use-module (gnu services)
   #:use-module (gnu services web)
+  #:use-module (srfi srfi-1) ; find
+  #:use-module (gnu services shepherd) ; shepherd-root-service-type
   #:export (%my-nginx-service))
 
 (define my-nginx-configuration
@@ -18,5 +20,29 @@
          (uri "/")
          (body (list "index index.html;"))))))))))
 
+(define (my-nginx-shepherd-service nginx-conf)
+  (let ((nginx-shepherd-service
+         (service-extension-compute
+          (find (lambda (ext)
+                  (eq? (service-extension-target ext)
+                       shepherd-root-service-type))
+                (service-type-extensions nginx-service-type)))))
+    (list
+     (shepherd-service
+      (inherit (car (nginx-shepherd-service nginx-conf)))
+      (auto-start? #f)))))
+
+(define my-nginx-service-type
+  (service-type
+   (inherit nginx-service-type)
+   (extensions
+    (cons
+     (service-extension shepherd-root-service-type
+                        my-nginx-shepherd-service)
+     (remove (lambda (ext)
+               (eq? (service-extension-target ext)
+                    shepherd-root-service-type))
+             (service-type-extensions nginx-service-type))))))
+
 (define %my-nginx-service
-  (service nginx-service-type my-nginx-configuration))
+  (service my-nginx-service-type my-nginx-configuration))

reply via email to

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