Hi Tangonov,
Tangonov <tn@eml.cc> writes:
Ok, it seems as though I had some bash configuration issues. My
"$(inline commands)" made things unhappy for some reason.
I resolved them, and shepherd started working...except that
herd
was totally bound up and not responsive. I had to kill it to
reconfigure.
I assumed this is because the services were holding stuff
up...so
I tried a forked config:
#+BEGIN_SRC scheme
(service home-shepherd-service-type
(home-shepherd-configuration
(services (list
(shepherd-service
(provision '(syncthing))
(start
#~(make-forkexec-constructor
"syncthing" #:user
#:t))
(stop #~(make-kill-destructor))
(documentation
"Synchronize folders to other
device"))
(shepherd-service
(provision '(pantalaimon))
(start
#~(make-forkexec-constructor
"pantalaimon" #:user
#:t))
(stop #~(make-kill-destructor))
(documentation
"Crypto back-end server for
ement.el"))))))
#+END_SRC
The forked service does not seem to work :/
#+BEGIN_QUOTE
λ herd start pantalaimon
herd: exception caught while executing 'start' on service
'pantalaimon':
Throw to key `match-error' with args `("match" "no matching
pattern" "pantalaimon")'.
#+END_QUOTE
The issue is most likely that make-forkexec-constructor's
COMMAND
argument expects a list of strings [0]. Try and see if this
works:
#+BEGIN_SRC scheme
(service home-shepherd-service-type
(home-shepherd-configuration
(services (list
(shepherd-service
(provision '(syncthing))
(start
#~(make-forkexec-constructor
(list "syncthing")
#:user #:t))
(stop #~(make-kill-destructor))
(documentation
"Synchronize folders to other
device"))
(shepherd-service
(provision '(pantalaimon))
(start
#~(make-forkexec-constructor
(list "pantalaimon")
#:user #:t))
(stop #~(make-kill-destructor))
(documentation
"Crypto back-end server for
ement.el"))))))
#+END_SRC
[0]
https://www.gnu.org/software/shepherd/manual/html_node/Service-De_002d-and-Constructors.html#Service-De_002d-and-Constructors