Thanks Fredrik! I really struggle with subtle details that are a few paragraphs deep, and so, I am embarassed. If anyone else is reading this for reference: I should not have set =#:user #:t= for =make-forkexec-constructor=. The =#:user= keyword expects a string. My user is implicitly when left with the default value. If I may say so, this has been easier to learn than systemd services. After many years of mostly failing to use systemd properly, I have not yet mastered it. My user-level services are running :) Fredrik Salomonsson writes: > Hi Tangonov, > > Tangonov 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