[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
signature.asc
Description: PGP signature