guix-devel
[Top][All Lists]
Advanced

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

Re: need help with debugging gopherd (geomyidae) service


From: Maxim Cournoyer
Subject: Re: need help with debugging gopherd (geomyidae) service
Date: Tue, 16 May 2017 00:44:20 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

ng0 <address@hidden> writes:

> When I start this via the arguments I pass (well, any arguments),
> without the service it starts and I can access the server.
>
> The service never starts (and due to its simplistic nature, no
> "BOOM CRASH THIS IS WHY I REFUSE TO START" is seen.
> In this version I added 'networking' to requirements, still no change.
>
> Anyone got an idea what could be missing from making this simple service
> functional?
>

[...]
> diff --git a/gnu/services/web.scm b/gnu/services/web.scm
> index f85b41215..2cfa835a7 100644
> --- a/gnu/services/web.scm
> +++ b/gnu/services/web.scm
> @@ -1,7 +1,7 @@
>  ;;; GNU Guix --- Functional package management for GNU
>  ;;; Copyright © 2015 David Thompson <address@hidden>
>  ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <address@hidden>
> -;;; Copyright © 2016 ng0 <address@hidden>
> +;;; Copyright © 2016, 2017 ng0 <address@hidden>
>  ;;; Copyright © 2016, 2017 Julien Lepiller <address@hidden>
>  ;;; Copyright © 2017 Christopher Baines <address@hidden>
>  ;;;
> @@ -41,7 +41,12 @@
>              nginx-named-location-configuration
>              nginx-named-location-configuration?
>              nginx-service
> -            nginx-service-type))
> +            nginx-service-type
> +
> +            geomyidae-service
> +            geomyidae-service-type
> +            geomyidae-configuration
> +            geomyidae-configuration?))
>  
>  ;;; Commentary:
>  ;;;
> @@ -305,3 +310,111 @@ files in LOG-DIRECTORY, and stores temporary runtime 
> files in RUN-DIRECTORY."
>              (server-blocks server-list)
>              (upstream-blocks upstream-list)
>              (file config-file))))
> +
> +;;;
> +;;; geomyidae
> +;;;
> +
> +(define-record-type* <geomyidae-configuration>
> +  geomyidae-configuration make-geomyidae-configuration
> +  geomyidae-configuration?
> +  (package  geomyidae-configuration-package ;package
> +            (default geomyidae))
> +  (logfile  geomyidae-configuration-logfile ;string
> +            (default "/var/log/geomyidae.log"))
> +  (loglevel geomyidae-configuration-loglevel ;number
> +            (default 7))
> +  (htdocs   geomyidae-configuration-htdocs ;string
> +            (default "/srv/gopher"))
> +  (port     geomyidae-configuration-port ;number
> +            (default 70))
> +  (sport    geomyidae-configuration-sport ;number
> +            (default 70))
> +  (host     geomyidae-configuration-host ;string
> +            (default "localhost"))
> +  (ip       geomyidae-configuration-ip ;string
> +            (default #f)))
> +
> +(define geomyidae-shepherd-service
> +  (match-lambda
> +    (($ <geomyidae-configuration>
> +        package logfile loglevel htdocs port
> +        sport host ip);;user group
> +     (let* ((geomyidae (file-append package "/bin/geomyidae"))
> +            (cmd `(,geomyidae
> +                   "-d"
> +                   ,@(if logfile
> +                         `(,(string-append "-l " logfile))
> +                         '())
> +                   ,@(if loglevel
> +                         `(,(string-append
> +                             "-v " (number->string loglevel)))
> +                         '())
> +                   ,@(if htdocs
> +                         `(,(string-append "-b " htdocs))
> +                         '())
> +                   ,@(if port
> +                         `(,(string-append
> +                             "-p " (number->string port)))
> +                         '())
> +                   ,@(if sport
> +                         `(,(string-append
> +                             "-o " (number->string sport)))
> +                         '())
> +                   ,@(if host
> +                         `(,(string-append "-h " host))
> +                         '())
> +                   ,@(if ip
> +                         `(,(string-append "-i " ip))
> +                         '()))))
> +       (list (shepherd-service
> +              (documentation "Run the gopherd geomyidae")
> +              (provision '(geomyidae))
> +              (requirement '(user-processes loopback networking))
> +              (start #~(make-forkexec-constructor
> +                        '#$cmd

Why is there a single quote in front of #$cmd ?

I think Ludo once explained how to manually exercise the service script;
I'm not sure, but maybe you could gather more clues as to what might be
failing from there if you could manage to run the service manually at
the REPL.

Maxim

Attachment: signature.asc
Description: PGP signature


reply via email to

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