ng0 <n...@pragmatique.xyz> 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 <da...@gnu.org> > ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <l...@gnu.org> > -;;; Copyright © 2016 ng0 <n...@we.make.ritual.n0.is> > +;;; Copyright © 2016, 2017 ng0 <n...@no-reply.pragmatique.xyz> > ;;; Copyright © 2016, 2017 Julien Lepiller <jul...@lepiller.eu> > ;;; Copyright © 2017 Christopher Baines <m...@cbaines.net> > ;;; > @@ -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